這個明顯矛盾的解釋是什麼?變量設置爲字符串,但未定義爲對象屬性
當使用isset變量$ city ='';返回「真」。
但是我必須使用if語句在下面的代碼,以避免不確定的錯誤:
class Holiday {
public $city = '';
public function __construct() {
if (isset($city)) {
$this->city = $city;
}
}
public function get_city() {
return $this->city;
}
public function set_city($city) {
return $this->city = $city;
}
}
$germany = new Holiday;
$germany->set_city('Berlin');
function travel($a) {
echo "Visit " . $a->get_city();
}
...我已經尋找「設置」和不確定,但無法找到一個之間的解釋。我真的很感激任何見解。
isset檢查是否變量被定義或沒有。 –
@IanStewart你在哪裏得到這個錯誤?當然不是在你的示例代碼中,即使沒有修改它。 – fusion3k
@fusion 3k當我使用set_city($ city)函數時發生錯誤。如果我直接將該值傳遞給對象(即「柏林」),它無論如何都可以工作。 –