7 Apr 2004 11:30
: Бележки за overloading в PHP 5
Alek Andreev <alek <at> zvuk.net>
2004-04-07 09:30:03 GMT
2004-04-07 09:30:03 GMT
Здравейте!
Който от вас ползва 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)
RSS Feed