Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2014, 13:07
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

как вызвать защищенный метод ?
Встала простая задача PHP oop, но почему то заступорился на ней.
Есть класс "First" и наследник класс "Second".
В дочернем классе переопределена переменная ($number) родительского класса. И есть необходимость вызвать метод родительского класса с первичным значением переменной $number

Проще на примере...

class First {

		protected $number = "First";
		
		protected function getNumber() {
			
			return $this->number;

		}

	}

	class Second extends First {

		protected $number = "Second";

	}
	
	$first = new First;
	
	$second = new Second;

	// здесь нужно вывести "First"
	echo $second->getNumber();


Пример упростил для более лёгкого понимания общей цели.

В коде зашито все так что ни свойства и методы менять нельзя. Можно только добавлять к этому куску кода свой.

Никак не могу вызвать этот метод.

Если бы во втором классе не переопределялась переменная, то можно было бы просто добавить - return parent::getNumber();
Но, там жизненно необходимо переопределение этой переменной.

Есть какие то идеи?
Может я что то пропустил?
Такая мелочь (казалось) а туплю уже целый день на этим.

Последний раз редактировалось Round, 14.11.2014 в 13:19.
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2014, 16:34
Новичок на форуме
Отправить личное сообщение для RorikOmink Посмотреть профиль Найти все сообщения от RorikOmink
 
Регистрация: 30.10.2014
Сообщений: 1

И что в таком случае делать?
А зима не просто блиизко...
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2014, 10:06
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

Вопрос немного меняется (незнаю, возможно ли исправить название темы здесь).

Продолжал копать в этой конструкции и пришел к выводу, что мне нужно во первых переопределить метод getNumber в классе наследнике и каким то образом туда ещё раз поместить значение свойства $number из родительского класса.

Новый вариант ...

class First {

	protected $number = "First";

	protected $first;
	
	protected function getNumber() {
		
		return $this->number;

	}
	
	protected function getFirst() {
		
		 // Как загнать значение переменной $number в $first ?

                return $this->first; 

	}
}

class Second extends First {

	protected $number = "Second";

	public function getNumber() {
		
		return $this->first;

	}
}

$first = new First;

$second = new Second;


echo $second->getNumber(); // здесь нужно вывести "First"



Как загнать значение переменной $number в $first ?
Ответить с цитированием
  #4 (permalink)  
Старый 25.11.2014, 05:18
Профессор
Отправить личное сообщение для depp Посмотреть профиль Найти все сообщения от depp
 
Регистрация: 22.04.2014
Сообщений: 151

class First {
	protected static $number = "First";
	protected function getNumber() {
		return $this->number;
	}
}

class Second extends First {
	protected static $number = "Second";
	public function getNumber() {
		return parent::$number;
	}
}

$first = new First;
$second = new Second;
// здесь нужно вывести "First"
echo $second->getNumber();
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать метод? ibolgenos Общие вопросы Javascript 22 20.09.2014 00:04
Как вызвать функцию из переменной? sss2019 Общие вопросы Javascript 7 02.09.2014 13:34
как вызвать анонимную функцию которая находится в подключенном файле(.js) arsen97 Общие вопросы Javascript 3 03.08.2014 00:23
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как вызвать функцию из функции ? PheonixS AJAX и COMET 7 20.06.2010 09:51