Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2010, 22:18
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Конструкторы пхп
Изучаю конструкторы на php.su.
Написал простой конструктор с одним параметром, он не выводится на экран, почему?

Код:
<?php
class A{
private $s; //Объявил свойство в качестве закрытого члена класса
function A($otdacha){
$this->s = $otdacha;
 }
}
 
$obj = new A("Санта Клаус");
 
?>
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2010, 22:20
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А почему он должен выводиться на экран?
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2010, 22:32
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Скажите, как вывести правильно?
Ведь так тоже же нельзя в конструкторах:
function A($otdacha){
return $this->s = $otdacha;
 }

Так только в методах возможно, но не в конструкторах. Как тогда вывести результат?
Почему только так?
<?php
class A{
private $s;
function A($otdacha){
echo $this->s = $otdacha;
 }
}

$obj = new A("Санта Клаус");


?>
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2010, 22:59
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

1. Конструктор лучше называть как __constructor, а не по имени класса.
Сообщение от Golovastik
return $this->s = $otdacha;
Конструктор класса, возвращающий значение другого типа... Не находите странным?
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2010, 23:01
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<?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();
?>

Последний раз редактировалось monolithed, 22.11.2010 в 23:14.
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2010, 23:23
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 15:16.
Ответить с цитированием
  #7 (permalink)  
Старый 23.11.2010, 00:17
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Чего-то решил ваш код запустить, вот этот:
<?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

Последний раз редактировалось Golovastik, 23.11.2010 в 00:21.
Ответить с цитированием
  #8 (permalink)  
Старый 23.11.2010, 00:45
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

А читать текст ошибки не пробовали? Советую попробовать - бывает очень полезно в программировании.
Ответить с цитированием
  #9 (permalink)  
Старый 23.11.2010, 00:58
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 15:16.
Ответить с цитированием
  #10 (permalink)  
Старый 23.11.2010, 01:52
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Оказывается слово конструктор не работает, нужно вот так.


<?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

Последний раз редактировалось Golovastik, 23.11.2010 в 01:59.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер вызывающий пхп функцию или как минимум посылающий какой-то параметр syegorius Общие вопросы Javascript 1 08.09.2010 17:12
Отправка данных к пхп Andrei Серверные языки и технологии 1 13.12.2009 11:35
джава и пхп zerg Общие вопросы Javascript 4 22.02.2009 18:57