Конструкторы пхп
Изучаю конструкторы на php.su.
Написал простой конструктор с одним параметром, он не выводится на экран, почему? Код:
<?php |
А почему он должен выводиться на экран?
|
Скажите, как вывести правильно?
Ведь так тоже же нельзя в конструкторах: function A($otdacha){ return $this->s = $otdacha; } Так только в методах возможно, но не в конструкторах. Как тогда вывести результат? Почему только так? <?php class A{ private $s; function A($otdacha){ echo $this->s = $otdacha; } } $obj = new A("Санта Клаус"); ?> |
1. Конструктор лучше называть как __constructor, а не по имени класса.
Цитата:
|
<?php class Name { var $name; //свойство, но лучше использовать спецификатор public function Golovastik() { //метод echo "Учи язык"; } } $object = new Name; $object->name = "Golovastik"; echo $object->name.': '.$object->Golovastik(); ?> Но лучше так: <?php class Name { function __constructor($name){ $this->name = $name; function Golovastik() { return $this->name; } private $name; } $object1 = new Name("Golovastik"); $object2 = new Name("Лентяй"); echo $object1->Golovastik().': '.$object2->Golovastik(); ?> |
удалено.
|
Чего-то решил ваш код запустить, вот этот:
<?php class Name { function __constructor($name){ $this->name = $name; function Golovastik() { return $this->name; } private $name; } $object1 = new Name("Golovastik"); $object2 = new Name("Лентяй"); echo $object1->Golovastik().': '.$object2->Golovastik(); ?> Не сработал, ошибка на строке: private $name; И вот это слово драимвиер не выделяет кстати __constructor |
А читать текст ошибки не пробовали? Советую попробовать - бывает очень полезно в программировании.
|
удалено.
|
Оказывается слово конструктор не работает, нужно вот так.
<?php class Name { function Name($name){ $this->name = $name; } function Golovastik() { return $this->name; } private $name; } $object1 = new Name("Тест1"); $object2 = new Name("Тест2"); echo $object1->Golovastik().': '.$object2->Golovastik(); ?> Вот это не работает: __constructor |
отлично работает
надо только применить мозги, и заглянуть на 5 минут в документацию, а не тупо копипастить чужой код |
Часовой пояс GMT +3, время: 00:44. |