Alek Andreev | 7 Apr 2004 11:30

: Бележки за overloading в PHP 5

Здравейте!

Който от вас ползва overloading (__get(),__set(),__call() и т.н.) е 
добре да знае някои неща преди да мине към PHP 5. Overloading-ът
в PHP 5 
  има доста различия от този в версия 4. Те не са
документирани, но току 
що разбрах какви са, докато се опитвах да подкарам
един сайт след ъпгрейд.

1) overload() вече не съществува като функция.
В PHP5 всеки клас със дефинирани __get, __set, или __call методи се 
счита за overloaded по подразбиране. Ето примерен код,
който би работил 
и в PHP4 и в PHP5.
	if (function_exists("overload")) {
		overload("myOverloadedClass");
	}

2) Достъпът до недефинирани обекти от __get и __set вече води
до Fatal 
Error.
В PHP4 beshe vuzmojno da napravim tova, i da ni se razmine:
	function __set($propName,$propValue) {
		$this->internalVars[$propName] = $propValue;
		// internalVars не е дефинирано преди това
	}
След първото изпълнение, PHP щеше да ни направи услуга и
да дефинира 
internalVars като масив. В PHP5, обаче, получаваме следната грешка:
(Continue reading)


Gmane