Конструкторы пхп
Изучаю конструкторы на 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 |
| Часовой пояс GMT +3, время: 14:32. |