Trước khi mình giới thiệu qua một số hàm thường dùng trong WordPress, mình muốn nói trước về khái niệm Class [lớp] và Object [đối tượng] trong PHP vì rất nhiều hàm trong WordPress trả kết quả về là dạng đối tượng nên bạn nên đọc bài này để hiểu cách hoạt động của Lớp và Đối tượng. Bây giờ bạn cần biết trước rằng đối tượng là kiểu dữ liệu được tạo ra bởi một lớp.
Định nghĩa Lớp và Đối tượng
Lớp nghĩa là một khung kịch bản của một đối tượng, hoặc bạn có thể hiểu đối tượng được tạo ra từ một lớp. Trong lớp nó sẽ có các biến mà biến này ta gọi là các thuộc tính [properties], và lớp nó có thể chứa các hàm mà các hàm này chúng ta gọi nó là phương thức [method].
Mình có ví dụ sau, chiếc xe là lớp, trong chiếc xe đó nó có các thuộc tính như màu đỏ, 1 cầu 2 cầu, và các hành động như chạy, lùi, thắng ta xem như một phương thức.
Định nghĩa của Class và Object. Ảnh: phpenthusiast
Bây giờ chúng ta cùng viết một lớp tên là
echo ‘’;7 như sau.
var_dump[$say];
class meeting {public $name = ‘Thach’;
function hello[]
{
return $this->name . ‘ saying hello’;
}function goodbye[]
{
return $this->name . ‘ saying goodbye’;
}
}
Trong đó, mình tạo ra một thuộc tính
echo ‘’;8 trong lớp meeting, biến này mình có đặt từ khoá là
var_dump[$say];
echo ‘’;9 mà cái này tí nữa mình sẽ giải thích sau.
var_dump[$say];
Kế đó mình tạo thêm một phương thức tên
object[meeting]#117 [1] { ["name"]=> string[5] "Thach" }0 trong lớp và nó sẽ trả về là giá trị của thuộc tính
echo ‘’;8 kèm theo một đoạn chữ. Lưu ý rằng khi mình viết code trong một lớp mà nếu mình muốn sử dụng một thuộc tính nào đó có trong lớp thì sẽ sử dụng từ khoá
var_dump[$say];
object[meeting]#117 [1] { ["name"]=> string[5] "Thach" }2.Bây giờ chúng ta đã có 2 phương thức và một thuộc tính trong lớp. Chúng ta sẽ sử dụng nó bằng cách tạo ra một biến để hứng lớp này.
[code lang=”php”]$say = new meeting;[/code]
Nghĩa là khi sử dụng lớp, chúng ta cần cho biến nào hứng dữ liệu của lớp thì sẽ có từ khoá new đằng trước tên lớp cần sử dụng.
Bây giờ bạn dump cái biến
object[meeting]#117 [1] { ["name"]=> string[5] "Thach" }3, bạn sẽ thấy nó có kiểu dữ liệu là Object.
echo ‘’;
var_dump[$say];
object[meeting]#117 [1] { ["name"]=> string[5] "Thach" }Bạn thấy, nó trả về dữ liệu kiểu đối tượng và cho ta thấy đối tượng đó có một thuộc tính tên là
object[meeting]#117 [1] { ["name"]=> string[5] "Thach" }4. Bây giờ chúng ta có đối tượngobject[meeting]#117 [1] { ["name"]=> string[5] "Thach" }3 rồi, chúng ta muốn sử dụng thuộc tínhobject[meeting]#117 [1] { ["name"]=> string[5] "Thach" }4 trong đó thì chỉ cần viết làobject[meeting]#117 [1] { ["name"]=> string[5] "Thach" }7 là nó sẽ ra.Và nếu cần gọi một phương thức trong lớp thì chỉ cần viết
object[meeting]#117 [1] { ["name"]=> string[5] "Thach" }8 hoặcobject[meeting]#117 [1] { ["name"]=> string[5] "Thach" }9 là nó ra. Lưu ý là khi gọi phương thức và thuộc tính, sử khác biệt của nó là thuộc tính không có ký tự0 phía sau như phương thức.
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
Truyền tham số vào lớp
Như ở ví dụ trên, chúng ta có thuộc tính
echo ‘’;8 có giá trị sẵn là
var_dump[$say];
2. Vậy chúng ta cần tự thiết lập giá trị này khi tạo đối tượng thì làm sao? Trước hết, chúng ta phải tạo ra cho nó thêm một phương thức nào đó mà nó sẽ có nhiệm vụ truyền tham số đã được khai báo khi tạo ra đối tượng.
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
class meeting {
public $name;public function set_name[ $ten ]
{
$this->name = $ten;
}public function hello[]
{
return $this->name . ‘ saying hello’;
}
}
Ngay tại dòng 5 đến dòng 8, bạn có thể thấy mình tạo ra một phương thức tên
3 với tham số là
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
4 để truyền tham số mà người dùng nhập vào.
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
Trong phương thức này, mình sẽ chỉ định cho thuộc tính
echo ‘’;8 của class sẽ sử dụng tham số truyền vào là
var_dump[$say];
4.
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
Cuối cùng là ở phương thức
object[meeting]#117 [1] { ["name"]=> string[5] "Thach" }0, mình sẽ return lại giá trị mà thằng3 đã truyền vào với từ khoá
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
9.
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
Và khi sử dụng, chúng ta sẽ thiết lập tham số ở phương thức
3.
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
$say = new meeting;
$say->set_name[‘Super Man’];
echo $say->hello[];
Đơn giản vậy thôi.
Phương thức khởi tạo [ __construct[] ]
Phương thức khởi tạo này nghĩa là một phương thức mà nó sẽ được tự động thực thi khi chúng ta tạo ra một đối tượng mới, và các tham số trong phương thức này chúng ta có thể truyền nó vào ngay lúc tạo ra đối tượng.
Bây giờ quay lại ví dụ của bài truyền tham số, chúng ta dùng phương thức
3 để truyền cái
$say = new meeting;
echo $say->name . ‘’;
echo $say->hello[] . ‘’;
echo $say->goodbye[] . ‘’;
echo ‘’;8 vào. Nhưng nếu bạn không muốn làm bước này, muốn truyền một tham số gì đó toàn cục trong lớp thì nên sử dụng phương thức
var_dump[$say];
3.
class meeting {
public $name;public function set_name[ $ten ]
{
$this->name = $ten;
}public function hello[]
{
return $this->name . ‘ saying hello’;
}
}