Tôi có điều này:Bắt thuộc tính tĩnh từ một lớp học với tên lớp năng động trong PHP
- một chuỗi biến mà giữ tên lớp (
$classname
) - một chuỗi biến với giữ tên thuộc tính (
$propertyname
)
Tôi muốn nhận được thuộc tính đó từ lớp đó, vấn đề là, thuộc tính tĩnh và tôi không biết cách thực hiện điều đó.
Nếu tài sản không phải là tĩnh, nó đã có:
$classname->$propertyname;
nếu tài sản được một phương pháp, tôi có thể đã sử dụng call_user_function
call_user_func(array($classname, $propertyname));
Nhưng trong trường hợp của tôi, tôi vừa mất. Tuy nhiên tôi hy vọng rằng điều đó là có thể. Với hàng nghìn chức năng mà PHP có, anh ta cũng có cái gì đó tốt hơn cho điều này. Có lẽ tôi đang thiếu một cái gì đó?
Cảm ơn!
Edit:
- cho những người có eval() giải pháp: cảm ơn, nhưng nó là ra câu hỏi
- cho những người có get _class _vars() giải pháp: cảm ơn, nhưng có vẻ như nó sẽ trả về "các thuộc tính mặc định của cho lớp " (php.net), và có, tôi muốn giá trị đó có thể thay đổi được (mặc dù nó có thể giúp tôi trong một số trường hợp)
+1 cho chức năng bao bọc. – nilamo
Ôi trời ơi, tôi vừa định hỏi "nhưng làm thế nào để thiết lập ...". Dude, bạn hoàn toàn đá! – treznik
Trong PHP 5 trở lên (Tôi đang ở trên 5.2), bạn có thể sử dụng sự phản chiếu cho điều này, như tôi vừa học được. Xem câu trả lời của tôi ở đây: http://stackoverflow.com/questions/3354628/from-the-string-name-of-a-class-can-i-get-a-static-variable/3364090#3364090 –