我试图调试一个PHP脚本,当我遇到一个类似的声明传来:
$cart = new form;
$$cart = $cart->function();
什么是$$cart
?
我试图调试一个PHP脚本,当我遇到一个类似的声明传来:
$cart = new form;
$$cart = $cart->function();
什么是$$cart
?
什么PHP在声明$$cart
时会做什么,试图获取$cart
对象的字符串值,并将其用作此变量变量的名称。这意味着它必须调用__toString()
这个类的魔法。
如果在类中没有__toString()
方法,这将导致可捕获的致命错误:
Catchable fatal error: Object of class MyClass could not be converted to string...
否则,$$cart
变量变量的名称是由魔法返回的对象的字符串值方法。
与__toString()
魔术方法实现的(不同类别/名称,但类似的例子调用代码)的一个例子:
class MyClass {
public function __toString() {
return 'foo';
}
public function some_method() {
return 'bar';
}
}
$obj = new MyClass();
$$obj = $obj->some_method();
echo (string) $obj, "\n"; // foo
echo $$obj; // bar
双$用于可变的变量。
本质是什么,这需要与字沿第二$是一个变量用于第一$
i.e.-
$first = "second";
$second = 'Goodbye';
echo $$first; // Goodbye
它的名称值