Может кто-нибудь объяснить мне, почему пустой() в этом случае возвращает true?
Это выглядит очень странно и если я полностью удалю функцию __set, то она будет работать так, как я ожидаю.
Может кто-нибудь объяснить мне, почему пустой() в этом случае возвращает true? Это выглядит очень странно :) и если я полностью удалю функцию __set, то она будет работать так, как я ожидаю. [code]class testData { protected $testData = [];
public function __construct($dane = []) { if (is_array($dane)) { $this->testData = $dane; } }
public function __get($xKey) { if (array_key_exists($xKey, $this->testData)) { return $this->testData[$xKey]; } return null; }
public function __set($xKey, $xValue) { $this->testData[$xKey] = $xValue; }
}
$data = new testData; $data->example = '1234'; var_dump($data->example); var_dump($data->example == null); var_dump(empty($data->example)); [/code] Пример выше: https://onlinephp.io/c/d7c131