Tôi có một câu hỏi liên quan đến "năng động" class Initialising, hãy để tôi giải thích những gì tôi muốn nói:
$class = 'User';
$user = new $class();
//...is the same as doing
$user = new User();
... Vì vậy, đó không phải là vấn đề, nhưng tôi đang gặp một số rắc rối làm như vậy khi gọi một biến tĩnh từ một lớp học, ví dụ:
$class = 'User';
print $class::$name;
nào đưa ra được lỗi sau:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in
Tất nhiên tôi đã thử nghiệm làm print User::$name;
và hoạt động. Vì vậy, lớp học hoạt động.
Tại sao điều này và có cách nào đó?
Theo dõi câu hỏi:
Ngoài ra là có bất kỳ lý do chính đáng để không sử dụng theo cách này "năng động" trong việc tạo ra các lớp học?
bạn không thể kết hợp các cuộc gọi động và tĩnh, đó là lý do tại sao không thể gọi User :: $$ prop và cả $ class :: $ name –
http://stackoverflow.com/questions/3679717/unexpected-t của bạn -paamayim-nekudotayim-on-one-máy tính-nhưng-không-khác-với-php-5 –
có thể trùng lặp của [Truy cập biến tĩnh bởi $ var :: $ reference] (http://stackoverflow.com/questions/ 675676/truy cập-một-tĩnh-biến-by-varreference) –