Trong php ít nhất trong trường hợp của tôi, nó rất phổ biến để sử dụng các phương pháp ma thuật - ít nhất là khi xác định các lớp cốt lõi của bạn mà từ đó hầu hết mọi thứ khác sẽ mở rộng.Phương pháp ma thuật Javascript
Phương pháp ảo trong hoạt động php theo cách đặc biệt từ tiêu chuẩn của các phương pháp thông thường của bạn. Ví dụ: một trong những phương pháp phổ biến nhất trong sách của tôi để chơi cùng sẽ là __construct()
Cấu trúc được thực thi mỗi lần một lớp được tải. Vì vậy, ví dụ: nếu bạn muốn lớp của bạn tự giới thiệu, bạn có thể làm điều gì đó như sau:
<?php
class Person
{
function __construct($name)
{
$this->name = $name;
$this->introduceYourself();
}
public function introduceYourself()
{
//if $this->name then echo $this->name else echo i dont have name
echo $this->name ? "hi my name is " . $this->name : "error i dont have name";
}
}
$dave = new Person('dave');
Thông thường bạn sẽ không chuyển thứ gì đó cho cấu trúc.
Một số những người khác mà tôi chạy ngang qua bán thường bao gồm:
__call() cho phép bạn thay đổi cách mặc định rằng phương pháp này được gọi là. Một ví dụ tốt là ghi đè cho phép bạn nhận các giá trị thuộc tính bất cứ khi nào bạn sử dụng bất kỳ phương thức nào bắt đầu bằng từ nhận được hoặc đặt giá trị thuộc tính bất cứ khi nào cuộc gọi phương thức bắt đầu bằng từ.
__get() được sử dụng làm bộ nạp quá tải cho thuộc tính lớp, tôi không sử dụng nhưng ai đó có thể quan tâm.
__set() được sử dụng làm bộ nạp cho thuộc tính lớp, tôi không sử dụng nhưng ai đó có thể quan tâm.
__destruct() tôi cũng không sử dụng, được gọi ngay khi không có tham chiếu nào khác cho một đối tượng cụ thể hoặc theo bất kỳ thứ tự nào trong chuỗi tắt máy.
Các Câu hỏi
Có phương pháp kỳ diệu như bên này của javascript?
Có bất kỳ đá quý ẩn nào mà một lập trình viên javascript mới cần phải biết giống như những người tôi đã mô tả ở trên cho php không?
Có thể trùng lặp [this] (http://stackoverflow.com/questions/6303896/magic-methods-in-javascript) Ngoài ra hãy xem [tại đây cho \ _ \ _ noSuchMethod \ _ \ _] (http://stackoverflow.com/questions/994143/javascript-getter-for-all-properties). – ComFreek
Có thể, nhưng không có ai làm phiền để trả lời hoặc xác nhận hoặc từ chối những người tôi đang tìm kiếm cụ thể. Hoặc một giải pháp "được mô phỏng". – ajameswolf