Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2013, 21:50
Аспирант
Отправить личное сообщение для super-php Посмотреть профиль Найти все сообщения от super-php
 
Регистрация: 08.03.2013
Сообщений: 38

Интерфейс implements
Не работает почему то интерфейс

<?php
interface A
{
	public function d();
}

interface B
{
	public function m();
}

class B implements A,B 
{
public	function d(){
	echo 'Привет!';
	}
	
public	function m(){
		echo 'Клоун!';
	}
}

$a = new B;
$a->d();
$a->m();
?>
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2013, 21:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от super-php
Не работает почему то интерфейс
А разве он должен как-то работать?
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2013, 15:15
Аспирант
Отправить личное сообщение для super-php Посмотреть профиль Найти все сообщения от super-php
 
Регистрация: 08.03.2013
Сообщений: 38

Исправил, вот другой пример.
Пример с интерфейсом, по книге вроде должно пахать, но чего-то не пашет. Не получается расширить интерфейс, как в книге пишется что можно расширять.

<?php ## Множественное наследование интерфейсов. 
// Сущность: "материальный объект", 
interface IWorldObject { 
public function getCoord(); // возвращает координаты объекта 
// Обратите внимание, тело метода не указывается! 
} 
// Сущность: "устройство с колесами", 
interface IWheeled { 
public function getNumWheels(); // возвращает число колес 
} 
// Сущность: "транспортное средство". ВНИМАНИЕ: при расширении 
// интерфейсов нужно использовать ключевое слово extends, а не 
// implements! Конечно, допустимо множественное расширение. 
interface ITransport extends IWorldObject { 
public function getNumPassengers(); // максимальное число пассажиров 
} 
// "Запорожец" — это: транспортное средство с колесами, существующее 
//в материальном мире, 
class Zaporojets implements ITransport, IWheeled, IWorldObject { 
private $coordArray; 
public function getCoord() { return $coordArray; } 
public function getNumWheels() { return 4; } 
public function getNumPassengers() { return 16; } 
// Также нужно определить конструктор, деструктор и другие методы. 
} 
?>


Код:
Fatal error: Class Zaporojets cannot implement
 previously implemented interface IWorldObject
 in D:\server\super-php\test.ru\www\index.php on line 19
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2013, 15:23
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от super-php
class Zaporojets implements ITransport, IWheeled, IWorldObject {
а зачем тут писать IWorldObject ? Если ITransport и так от него наследуется? Удалите из implements IWorldObject:
class Zaporojets implements ITransport, IWheeled {
}
и все должно работать
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2013, 15:25
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ежу понятно, ITransport уже включает в себя IWorldObject.
Поэтому реализуя ITransport, мы реализуем и IWorldObject, поэтому его отдельно не нужно прописывать.
А вобще, я с интерфейсами никогда не работал (в PHP). Так что может я не прав. Я просто попытался рассудить.
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2013, 15:26
Аспирант
Отправить личное сообщение для super-php Посмотреть профиль Найти все сообщения от super-php
 
Регистрация: 08.03.2013
Сообщений: 38

Если удалить, просто пустой экран при выводе. Кстати вот код, который не работает
Изображения:
Тип файла: jpg Снимок.JPG (107.4 Кб, 1 просмотров)
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2013, 15:28
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от super-php
Если удалить, просто пустой экран при выводе
а что вы ожидаете? вы же просто обяъвили классы/интерфейсы.. а экземляры и вызов методов Вася делать должен? или PHP за вас додумается что запускать?
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2013, 15:32
Аспирант
Отправить личное сообщение для super-php Посмотреть профиль Найти все сообщения от super-php
 
Регистрация: 08.03.2013
Сообщений: 38

Вот сделал экземпляр класса и методы повызывал, все равно пустой экран.

$a = new Zaporojets;
$a->getCoord();
$a->getNumWheels();
$a->getNumPassengers();
Ответить с цитированием
  #9 (permalink)  
Старый 05.04.2013, 15:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от super-php
Вот сделал экземпляр класса и методы повызывал, все равно пустой экран.
вы по коду совсем не видите что у вас происходит? вы где то видите вывод данных на экран или что-то в этом роде??? лично я по вашему коду нигде этого не вижу. И будь я интерпретатором PHP поступил бы так же, просто ничего не показал.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сверстать интерфейс подбора рамок для фотографий Natali_RnD Элементы интерфейса 15 13.04.2012 17:05
Dockable интерфейс varpa89 Элементы интерфейса 1 10.10.2011 08:50
AJAX и интерфейс Xaver AJAX и COMET 1 25.04.2011 09:11
Как можно что-нибудь узнать про интерфейс чужого объекта GRIG Internet Explorer 0 09.03.2011 17:16
Двухязыковый интерфейс сайта Andrew256 Оффтопик 3 24.02.2011 02:25