PHP 4.4.0 Released

SiMM

Новичок
PHP 4.4.0 Released

Команда разработчиков PHP представила новый стабильный релиз популярного открытого скриптового языка web-программирования — PHP 4.4.0.
Основное предназначение релиза PHP 4.4.0 — устранение проблемы, приводившей к коррупции памяти при некорректном использовании ссылок. Несмотря на переход с PHP 4.3.x к 4.4.x, никаких новых возможностей не представлено — это связано с тем, что исправление ошибки привело к необходимости в изменениях во внутреннем API PHP.

Полный список изменений
 

Setor

Новичок
Обновился под виндой и началось: Zend Optimizer и Zend Debugger does not support This version of PHP, обновил Optimizer, всё равно не поддерживает... Пришлось откатиться на PHP4.3.11

Кстати, почему такой скачок с 4.3.11 до 4.4.0?
 

SiMM

Новичок
> почему такой скачок с 4.3.11 до 4.4.0?
> исправление ошибки привело к необходимости в изменениях во внутреннем API PHP.
 

confguru

ExAdmin
Команда форума
Итак - повылезали баги..
eaccelerator 0.9.3 не работает с PHP 4.4.0
заработала только cvs версия.. и ту пришлось патчить..
 

ys

отодвинутый новичок
А как там Zend Optimizer в cvs версии? Как или все так же никак?
 

DeadMorozBLR

Новичок
я заметил, что в версии 4.4.0 конструкции вида

PHP:
function & getObject()
{
	return new stdClass;
}

$obj =& getObject();
т.е. когда функция, которая должна вернуть переменную по ссылке, возвращает ее значение, стали генерировать нотис: Only variable references should be returned by reference.

это связано с устранением проблемы, приводившей к "коррупции" памяти при некорректном использовании ссылок или с чем-то еще.

прокомментируйте, пожалуйста.
 

SibProgrammer

Новичок
Заметил тоже самое - такие же вещи используются, например, в Horde (web mail). Правда, Horde не последней версии была, возможно в последних версиях - пофиксили. Но не приятен сам факт, т.к. каждый скрипт каждого клиента проверить не возможно, поэтому тоже пришлось откатить до 4.3.11.
 

alexhemp

Новичок
admin

А у меня eAccelerator 0.9.3 встал без проблем
Я его поставил как php extension, а не как zend_extension.

В 4.4.0 изменилось только Zend API а php API не менялось:

4.9.11
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010

4.4.0
PHP API 20020918
PHP Extension 20020429
Zend Extension 20050606

Видно что поменялось только Zend Extension API, так что не работать должны только модули подключаемые через него
 

Rurick

Новичок
Автор оригинала: DeadMorozBLR
я заметил, что в версии 4.4.0 конструкции вида

PHP:
function & getObject()
{
	return new stdClass;
}

$obj =& getObject();
т.е. когда функция, которая должна вернуть переменную по ссылке, возвращает ее значение, стали генерировать нотис: Only variable references should be returned by reference.

это связано с устранением проблемы, приводившей к "коррупции" памяти при некорректном использовании ссылок или с чем-то еще.

прокомментируйте, пожалуйста.
А разве это обязательно?
Я делаю так и тоже получаю ссылку:
PHP:
function getObject()
{
     $obj =& new Class(); 
     return $obj;
}

$obj =& getObject();
 

Alone

Новичок
Автор оригинала: DeadMorozBLR
я заметил, что в версии 4.4.0 конструкции вида

PHP:
function & getObject()
{
	return new stdClass;
}

$obj =& getObject();
прокомментируйте, пожалуйста.
Объявление вида function & name(){ ... } вернет ссылку на переменную, которая будет возвращена этой функцией.
Так что $obj =& name(); не корректоне написание, о чем пхп собсно и предупреждает.
Следует писать просто $obj = name();
При этом $obj будет содержать ссылку на возвращаемое значение функцией name().
 
Сверху