Перегрузка методов

Статус
В этой теме нельзя размещать новые ответы.

fantom_uzb

Новичок
Перегрузка методов

Мне нужно реализовать класс так, чтобы происходил выбор функции в зависимости от определённого переданного типа...
Написал код (на яве такое работает), а здесь пишет Cannot redeclare qwe::write(). Что мне нужно добывить, чтобы всё это работало ???

PHP:
class qwe {
	function write(int $i) {
		echo  'Вы ввели число '.$i;
	}

	function write(bool $i) {
		if ($i) echo "TRUE";
		else echo "FALSE";
	}

	function write(string $i) {
		echo $i;
	}
}

$qwe = new qwe;

$qwe->write(34);
$qwe->write(false);
$qwe->write("lamer");
Заранее благодарен.
 

440hz

php.ru
Re: Перегрузка методов

Автор оригинала: fantom_uzb
Что мне нужно добывить, чтобы всё это работало ???
внимательного прочтения документации по работе классов в PHP. 8)
 

fantom_uzb

Новичок
Re: Re: Перегрузка методов

Автор оригинала: 440hz
внимательного прочтения документации по работе классов в PHP. 8)
большое спасибо за ответ, только, если вы знаете, как это реализовать пожалуйста помогите...
 

.des.

Поставил пиво кому надо ;-)
Re: Перегрузка методов

PHP:
class qwe {
	function write(int $i) {
		echo  'Вы ввели число '.$i;
	}

	function write(bool $i) {
		if ($i) echo "TRUE";
		else echo "FALSE";
	}

	function write(string $i) {
		echo $i;
	}
}

$qwe = new qwe;

$qwe->write(34);
$qwe->write(false);
$qwe->write("lamer");
PHP не строго типизированный язык. Поэтому таким образом перегрузить методы не удастся.

PHP:
class qwe {
	function write(int $i) {
		switch(gettype($i)) {
		  case'integer':$this->write_int($i);break;
		  case'boolean':$this->write_bool($i);break;
		  case'string':$this->write_string($i);break;
		}
	}

	function write_int(int $i) {
		echo  'Вы ввели число '.$i;
	}

	function write_bool($i) {
		if ($i) echo "TRUE";
		else echo "FALSE";
	}

	function write_string($i) {
		echo $i;
	}
}
Но даже в этом случае ждет много сюрпризов если не воспользуетесь советом 440.
 

fantom_uzb

Новичок
или дайте ссылку на страницу, где про это написано...

-~{}~ 09.01.06 17:33:

простите за ламерский вопрос...
нужно написать

"К примеру, есть класс для работы с неким множеством представлений с
одинаковым интерфейсом, но различными реализациями, причем в любой момент
может существовать не болеее одной копии каждой из этих реализаций. Как бы
вы реализовали данную функциональность?"

Я правильно понял, что от меня хотели ???
 

fantom_uzb

Новичок
странный вопрос

К примеру, есть класс для работы с неким множеством представлений с
одинаковым интерфейсом, но различными реализациями, причем в любой момент
может существовать не болеее одной копии каждой из этих реализаций. Как бы
вы реализовали данную функциональность?

я не очень понял вопрос... что от меня хотят в этом вопросе ??? я даже не представляю, что мне нужно написать...
http://phpclub.ru/talk/showthread.php?s=&postid=563435#post563435
 

tf

крылья рулят
fantom_uzb php нет явныx типов. один главный тип строка. это не си
да и так ли это тебе нужно
 

Фанат

oncle terrible
Команда форума
tf при чём здесь типы?


fantom_uzb от тебя хотят, чтобы ты пошёл учиться программированию.
и только после этого шёл к ним наниматься на работу
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху