Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » опечатка в php -разные результаты

Ответить
Настройки темы
опечатка в php -разные результаты

Ветеран


Сообщения: 542
Благодарности: 35

Профиль | Сайт | Отправить PM | Цитировать


PHP код: Выделить весь код

<?php

function customError($errno$errstr) {
  echo 
"<b>Ошибка:</b> [$errno] $errstr";
}
//установить обработчик ошибок
set_error_handler("customError");
$t=time();
print 
'['.date('G:i:s',$t).']<br>';
//$time()=5; //HTTP ERROR 500
$t=$time(); //Ошибка: [8] Undefined variable: time
echo 'done';
?>

в вышеуказанном скрипте опечатка -лишний $ перед функцией time()
Но одна строка порождает глухое зависание скрипта ( HTTP ERROR 500)
А другая - штатно отлавливается обработчиком ошибок (Ошибка: [8] Undefined variable: time)

Почему так?

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 10:15, 14-02-2022

 

Аватара для Habetdin


Автор проектов


Сообщения: 3651
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Цитата Опиум:
$time()=5; //HTTP ERROR 500 »
В данной строке будет вызвана следующая фатальная ошибка:
Цитата:
Fatal error: Can't use function return value in write context in ...
Фатальные ошибки на этапе выполнения кода (runtime) можно отловить с помощью своего обработчика в register_shutdown_function.
Но в данном случае ошибка будет выявлена ещё на этапе разбора кода — такой трюк не сработает. О таких ошибках можно получить информацию в логе службы php — веб-сервер же не получил от неё вменяемого ответа, поэтому и отправил в ответ HTTP ERROR 500.

Цитата Опиум:
Почему так? »
Если подойти к данному вопросу семантически, то...
PHP код: Выделить весь код

$t=$time(); 


...пытается присвоить переменной $t значение результата выполнения некоей функции, название которой записано в переменную $time — это вполне законно:
PHP код: Выделить весь код

$test 'strtoupper';
echo 
$test('foobar'); // FOOBAR 

Здесь же:
PHP код: Выделить весь код

$time()=5

Значение 5 пытаются задать не переменной, а результату выполнения некоей функции, название которой записано в переменную $time. Что явно не нравится интерпретатору PHP

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Последний раз редактировалось Habetdin, 14-02-2022 в 15:15.


Отправлено: 14:43, 14-02-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 542
Благодарности: 35

Профиль | Сайт | Отправить PM | Цитировать


Habetdin, спасибо большое.

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 15:54, 14-02-2022 | #3



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » опечатка в php -разные результаты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Debian/Ubuntu - [решено] aptidude - разные результаты на разных серверах exo Общий по Linux 4 12-03-2013 11:55
Любой язык - [решено] WMIC получении версии файла. Win7 и XP разные результаты gora Скриптовые языки администрирования Windows 1 13-04-2012 23:06
[решено] Опечатка Котяра О сайте и форуме 0 09-05-2008 22:44
разные результаты SQL выборки Vlad Drakula Вебмастеру 8 18-02-2007 11:39
Разные учетные записи-разные IP (WinXP) ILion Сетевые технологии 1 28-05-2003 10:48




 
Переход