我試圖調試一個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
它的名稱值