AnToXa
prodigy-одаренный ребенок
Zend Engine 2.0
Собрал у себя php 4.1.2 + ZendEngine 2.0 + Apache 1.3.20 php - static модуль
дата: 05.04.2002 14.00-18.00 Nsk время (+6 GMT)
т.к. качалось из cvs, то все может меняться
Выложил тесты, которые были KVN
смотреть тут http://212.20.30.181:2811/ZE2/test[число от 1 до 9 (по номерам у KVN)].php
Некоторые замечания:
1. Пример номер 9 (где у KVN пхп ругалась на переопределение функции __construct) работает номально
2. Нашел косяк в обработке exptions (кстати жаль, что php умеет throw только объекты)
вот код, на нем пхп просто срубается и валит апач в корку,
если я убираю все, что связано с StdClass, то все прекрасно работает
причем, если создать еще один класс для обработки исключений, то с ним все работает,
т.е. дело в StdClass
3. Все дело в stdClass
например вот такой код у меня роняет апач (чилд умирает по SIGSEGV)
а вот такой
работает
видимо разработчики оставили этот stdClass (кстати написание не зависит от регистра) для совместимости,
но вот зачем это допускать смерть чилда при таком раскладе непонятно
4. А про массивы забыли
не сделали dereferencing массивов, аналогично объектам
т.е. нельзя написать func(парметры)[индекс], вернее написать-то можно но пхп ругается
Parse error: parse error, unexpected `'['' in ....
Собрал у себя php 4.1.2 + ZendEngine 2.0 + Apache 1.3.20 php - static модуль
дата: 05.04.2002 14.00-18.00 Nsk время (+6 GMT)
т.к. качалось из cvs, то все может меняться
Выложил тесты, которые были KVN
смотреть тут http://212.20.30.181:2811/ZE2/test[число от 1 до 9 (по номерам у KVN)].php
Некоторые замечания:
1. Пример номер 9 (где у KVN пхп ругалась на переопределение функции __construct) работает номально
2. Нашел косяк в обработке exptions (кстати жаль, что php умеет throw только объекты)
вот код, на нем пхп просто срубается и валит апач в корку,
если я убираю все, что связано с StdClass, то все прекрасно работает
причем, если создать еще один класс для обработки исключений, то с ним все работает,
т.е. дело в StdClass
PHP:
class MyException {
function MyException($_error) {
$this->error = $_error;
}
function getException() {
return $this->error;
}
}
function ThrowException() {
throw new StdClass;
throw new MyException("'This is an exception!'");
}
try {
ThrowException();
} catch (MyException $exception) {
echo 'There was an exception: ' . $exception->getException() . "\n";
}
catch (StdClass $exeption) {
echo 'something bad has happened';
}
например вот такой код у меня роняет апач (чилд умирает по SIGSEGV)
PHP:
$obj->fld = "value";
PHP:
class Test {}
$obj = new Test;
$obj->fld = "value";
видимо разработчики оставили этот stdClass (кстати написание не зависит от регистра) для совместимости,
но вот зачем это допускать смерть чилда при таком раскладе непонятно
4. А про массивы забыли
не сделали dereferencing массивов, аналогично объектам
т.е. нельзя написать func(парметры)[индекс], вернее написать-то можно но пхп ругается
Parse error: parse error, unexpected `'['' in ....