Объявление классов

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
PHP:
Class A {tra la la}
a_class = new A ();

Class A {tra la la }
a_class = new A ();

Подскажите, пожалуйста, что надо сделать, чтобы я мог ещё раз в скрипте объявить класс с таким же названием, а данные о предыдущем классе затереть.
 
Здравствуйте.
PHP:
Class A {tra la la}
a_class = new A ();
Class A {tra la la }
a_class = new A ();
Подскажите, пожалуйста, что надо сделать, чтобы я мог ещё раз в скрипте объявить класс с таким же названием, а данные о предыдущем классе затереть.

PHP:
class Car{
		var $name = "BMW";
		
		
		function Getname(){
			echo $this->name;
		}
		
		function Setname($name){
			$this->name = $name;
		}
	}
	
	$object = new Car;
	
	// $object->Setname("Mercedess"); // выводит  Mercedess
	$object->Getname();  // выводит BMW

это имели виду?
 
Если имелось ввиду описать класс с уже объявленым именем - то CLASSKIT расширение в помощь. Без него описание
Class A {....} приведет к ошибке.
 
Попробуйте вот так:

PHP:
$a_class = NULL;

перед объявлением нового класса.

У меня схожий вопрос с ТС, дабы не создавать тему тоже спрошу здесь.

Если нужно функцию класса заменить на другую с таким же названием, это можно как-то сделать?
 
Если нужно функцию класса заменить на другую с таким же названием, это можно как-то сделать?

а поподробней ...

PHP:
class A
{
   public function f1()
  {
      echo " A ";
  }
}


class B  extends A
{
  public function f1()
  {
      echo " B ";
  }
}


class C  extends A
{
}


$a = new A();
$b = new B();
$c = new C();

$a->f1(); // тут будет работать "начальная" функции
$b->f1();  // тут будет работать "замененная" функция 
$с->f1();  // тут будет работать "начальная" функции

если конечно такое имелось введу ...
если же вам нужно создать класс, а потом программным путем изменить в нем поведение метода - то этого походу сделать нельзя ... а если и можно - то не желательно делать, так как такое поведение типа "не в стиле ооп" и усложнит дальнейшее понимание кода
 
  • Заблокирован
  • #7
Тоже заинтересовался ООП, дабы не создавать новую тему, есть ли смысл сейчас учить ООП для php, с учетом того что даже в php5 нет полной поддержки ООП как в Си
 
Конечно есть, с классами функций удобнее работать. Подключаете класс и обращаетесь к нужной функции.

какой-то философский вопрос задали
 
Если без хитромудрых костылей, то по уму делается так:

Используется понятие/паттерн Dependency Inversion. То есть в то место, где используется экземпляр класса, он уже приходит готовым, а создается где то в другом месте. В ООП для этого есть интерфейсы. Но в пхп это не обязательно (хотя желательно), потому что есть duck typing.

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

Как то так по простому.
 
Если без хитромудрых костылей, то по уму делается так:
Используется понятие/паттерн Dependency Inversion. То есть в то место, где используется экземпляр класса, он уже приходит готовым, а создается где то в другом месте. В ООП для этого есть интерфейсы. Но в пхп это не обязательно (хотя желательно), потому что есть duck typing.
А вот уже на этапе создания экземпляра и решается какой класс использовать. Родной или "подмененный". Причем "подмененный" может быть наследником родного, оберткой вокруг родного, а то и вообще левым классом. Они обладают одним интерфейсом и для кода их использующего "на одно лицо".
Как то так по простому.

А в коде все это как выглядит? Элементарный пример какой-то
 
Назад
Сверху