PHP: <?php class Messages { public $hello = "Hello world!"; public function SayHello() { return $hello; } } $isay = new Messages; echo $isay -> SayHello(); ?> Ничего не выводит, хотя должен выводить "Hello World!". Что я делаю не так?
PHP: <?php class Messages { public $hello = "Hello world!"; public function SayHello() { return $hello; //Так он юзает локальную переменную которая = пусторй строке return $this->hello; //Юзай эту тему } }?>
Да, работает, спасибо. Почему пустой? Я не задавал пустую строку. Объясните простым языком, что делает переменная $this?
PHP: <? interface if0 { public function pHello(); } interface if1 { public function pWorld(); } interface if2 { public function pSq(); } class World implements if1 { public function pWorld() { try { $this->text = 'World!'; if (!print $this->text) { throw new Exception(); } } catch (Exception $e) { echo $e->getMessage(); } return $this; } public function __set($name, $value) { $this->$name = $value; } public function __get($name) { return $this->$name; } } class Hello extends World implements if0, if2 { public function pHello() { try { $this->text = 'Hello'; if (!print $this->text) { throw new Exception(); } } catch (Exception $e) { echo $e->getMessage(); } return $this; } public function pSq() { try { $this->text = ', '; if (!print $this->text) { throw new Exception(); } } catch (Exception $e) { echo $e->getMessage(); } return $this; } public function __set($name, $value) { $this->$name = $value; } public function __get($name) { return $this->$name; } } $obj = new Hello; $obj->pHello()->pSq()->pWorld();
alex455 Область видимости этой функции не даёт ей переменную hello которая объявлена в классе =>этой переменная не объявлена,а как любая не объявленная переменная вывод её функцией echo даст пустую строку
Вообще тут получается обращение к необъявленной (несуществующей) переменной. При этом php генерирует ошибку уровня notice (если всключено отображение нотисов - появится в выводе), а значением этой переменной считает null. В php есть такая штука, как приведение типов переменных, в зависимости от контекста, в котором эти переменные используются. И когда null передаётся в echo - он преобразуется к пустой строке.