我已經想通過這種方式來實現這個工作,有很多魔法只是爲了讓它起作用,但在我的情況下是值得的。
class Test {
private $props = array();
function __get($name) {
return new Property(get_called_class(), $name, $this->props[$name]);
}
function __set($name, $value) {
$props[$name] = $value;
}
}
class Property {
public $name;
public $class;
public $value;
function __construct($class, $name, $value) {
$this->name = $name;
$this->class = $class;
$this->value = $value;
}
function __toString() {
return $value.'';
}
}
function GetClassByProperty($prop) {
return $prop->class.'->'.$prop->name;
}
$t = new Test();
$t->Name = "Test";
echo GetClassByProperty($t->Name);
這個例子是的,我知道這是複雜的,但它的工作如何我想它,會打印出「測試 - >名稱」我也可以這樣說:$丙得到值>值。如果我想的值與另一個對象,我可以簡單地這樣做:
if($t->Name == "Test") { echo "It worked!!"; }
希望這不是太混亂,但它是一個有趣的探索PHP。
只是想知道;你想找出來的原因是什麼? – Sherlock
我想創建一個方法,我可以通過傳遞屬性來創建html控件,傳入的類和屬性名稱太過笨拙IMO。 –
我找到了一種方法來獲取類名,工作的方式來獲取屬性名稱,當我知道我會發布我的答案。 –