Начиная с версии PHP 5.0.5, а также 5.1, разработчики PHP усилили требования к
коду. В частности, это касается работы функций, которые требуют в качестве
аргументов - ссылки на переменные, массивы и т.п.
В частности, код приведённый ниже и нормально работающий на PHP 4.4, начиная
с версии PHP 5.0.5 выдаёт сообщение об ошибке вида: Fatal error: Only
variables can be passed by reference in....
function Foo(&$data) {
// do some code with $data
}
function Bar() {
return "Hello world";
}
echo Foo(Bar());
Теперь при вызове функции Foo(), требующей передачи ей ссылки на переменную
(для непосредственной её модификации в функции) с аргументом, являющимся другой
функцией, PHP 5.0.5 отказывается выполнять этот код по причине его
"неграмотности".
Для решения данной проблемы необходимо немного видоизменить код, вводя
временную переменную. Правильный (и к тому же работающий на PHP 5.0.5, а также
5.1) вызов функции выглядит так:
$tmp_var = Bar();
echo Foo($tmp_var);
Или в сокращённом варианте:
echo Foo($tmp_var = Bar());
Как узнать, в каком месте необходимо изменить код?
Для определения, в каком месте (файл, строка) Вам необходимо
изменить код, чтобы Ваши скрипты нормально работали на PHP 5.0.5, следуйте
следующим инструкциям:
- Установите в файле ~/cgi-bin/php.ini значение параметра
error_reporting в значение E_ALL (или E_ERROR), а значение
параметра display_errors = On (это очень важно, поскольку при
возникновении подобных ошибок интерпретатор PHP почему-то не пишет в лог файл
ошибок сообщение об ошибке. К тому же Вы сразу же будете видеть ошибку в окне
браузера).
- При возникновении ошибки типа Fatal error: Only variables can be passed
by reference in file on line line Вам нужно открыть файл
file и на строке line проанализировать код и внести изменения в
соответствии с описанными Выше рекомендациями. Например, если на указанной
строке line php-код имеет такой вид:
$search_raw_words['text'] = split_words(clean_words('post',
$post_text, $stopword_array, $synonym_array));
то, Вам нужно (скорее всего) изменить его следующим образом:
$search_raw_words['text'] = split_words($tmp = clean_words('post',
$post_text, $stopword_array, $synonym_array));
- После проделанных изменений и нормализации работы Ваших скриптов (возможно,
Вам придётся изменить php-код не в одном месте), не забудьте отключить
отображение сообщений интерпретатора php, установив значение директивы
display_errors = Off.
Надеемся, изложенная выше информация поможет Вам быстро и легко
адаптировать Ваши php-скрипты к новой версии PHP 5.0.5.
|
Полезные ссылки |
Панель управления Хостингом Обыкновенным
Правила, по которым мы
работаем
Как разместить фотогалерею
FAQ по хостингу
Перейти на главную страницу
|
Вопросы и ответы об этом проекте |
Q: Почему "обыкновенный"?
A: Потому что ничего лишнего. Хостингов, называющих себя
"надежный", "супер", "круглосуточный",
"профессиональный" и так далее - предостаточно. Хотя по
сути все эти эпитеты - призыв купить именно у них. Мы же не даем
необоснованных обещаний.
Q: А чем вы лучше других?
A: Мы можем много всего пообещать, но разве вы поверите? Лучше
попробуйте, и сделайте свои выводы. Вы можете бесплатно тестировать
наш хостинг сколь угодно долго, и в любой момент перейти на платный.
И наоборот.
Q: Почему бесплатно?
A: Нужно же Вам потестировать наш хостинг перед покупкой. А нам
нужно рекламироваться на сайтах, которые хостим бесплатно.
Q: Где дизайн вашего сайта?
A: Его нет. На дизайнерах сэкономили и купили еще серверов. То
оформление, что Вы видите - вполне выполняет свои функции.
Q: Как долго будет существовать проект?
A: Вечно. А что вы ожидали в ответ на такой вопрос?
Q: Будет ли показываться реклама на сайте, использующем
бесплатный хостинг?
A: Да, будет.468х60 в верхнем правом углу страницы только
первые 60 секунд. Разумеется, на платном варианте рекламы нет.
Q: Почему не даете почтовый ящик, как на других хостингах?
A: Вам мало freemail'ов?
Q: Ваша простота - она от неумения сделать "круто"?
A: Мы много лет работали в интернет-компаниях. Мы умеем все.
Минимализм этого проекта - осознанный выбор, а не следствие
непрофессионализма.
Q: И все-таки, в чем подвох для бесплатных?
A: Очень просто. Если будете сильно грузить сервер - предложим
перейти на платный вариант, или сменить хостинг, если не
сильно - оставайтесь бесплатно, винты нынче дешевые.
|
Реклама |
Семейный врач, консультации и наблюдение взрослых и детей в Киеве и окрестностях.
Коллекция старых и новых мультфильмов. Скачать мультфильм можно бесплатно!
Боулинг в Украине
|
|