Справочник по PHP : Управляющие функции : Управление исполнением сценария PHP : Функции управления сценарием
смотрим также
Материал из Справочник Web-языков
Содержание |
set_time_limit
Установка предельного времени исполнения сценария.
Синтаксис:
void set_time_limit(int seconds)
При запуске сценария PHP запускает системный таймер, и если время (выделенное сценарию для выполнения) истекает, а сценарий еще не завершился, PHP принудительно завершает сценарий (генерируя фатальную ошибку исполнения). Это не допускает скопления большого количества сценариев, расходующих ресурсы сервера, но, повидимому, "зависших" (например, если в них обнаружился бесконечный цикл или они пытаются дождаться подключения к не отвечающему серверу).
По умолчанию допустимое время исполнения сценария устанавливается в файле конфигурации параметром max_execution_time (обычно оно равно 30 с). Но для текущего сценария это время можно изменить вызовом данной функции, указав время в секундах в ее аргументе. Если указывается значение 0, то тогда временное ограничение снимается.
Отсчет времени начинается от момента вызова функции. Например, если сценарий уже выполнялся в течении 15 секунд, а затем вызывается функция set_time_limit(20), то общее максимальное время исполнения сценария становится равным 35 секундам.
Если сценарий выполняется в безопасном режиме (с установленным параметром safe mode), то тогда вызов этой функции игнорируется и используется значение из файла конфигурации.
sleep
Задержка выполнения сценария.
Синтаксис:
void sleep(int seconds);
Фукция sleep() выполняет задержку выполнения сценария в секундах (seconds).
usleep
Задержка выполнения сценария в микросекундах.
Синтаксис:
void usleep(int micro_seconds);
Задержка выполнения сценария в микросекундах (micro_seconds).
Эта функция не работает в Windows.
die
Вывод сообщения и завершение текущего сценария.
Синтаксис:
void die(string message);
Эта функция выводит сообщение и прекращает выполнение текущего скрипта. Не возвращает значение.
<?php $filename = '/path/to/data-file'; $file = fopen($filename, 'r') or die "unable to open file ($filename)"; ?>
exit
Завершает текущий сценарий.
Синтаксис:
void exit(void);
Эта функция завершает текущий сценарий. Не возвращает значение.
assert
Проверка истинности значения.
Синтаксис:
int assert(string|bool assertion);
В качестве аргумента функции может быть указано значение или строка, содержащая код PHP (как в функции eval()). Функция проверяет, является ли значение (или выражение) равным false, и, если это так, выполняет определенные действия.
Поведение функции определяется установками в файле конфигурации или при вызове функции assert_options().
Обычно эта функция используется исключительно в целях отладки, для проверки тех значений, которые всегда должны быть истинны (например: подключение модуля, свободное пространство на диске и т.д.).
В целом же выполнение сценария не должно зависеть от таких проверок, а использовать обычные проверки возвращаемых функциями значений.
<?php function handler() { echo "n* Failed * n"; } assert("$a='1';"); echo "a: $a n"; assert(0); // завершать сценарий echo assert_options(ASSERT_BAIL, 1); // вызвать обработчик assert_options(ASSERT_CALLBACK, "handler"); // не выдавать сообщений PHP @assert(--$a); // эта строка не будет выполнена echo "n ... n"; ?>
Приведенный пример выведет:
a: 1 Warning: Assertion failed in file.php on line 20 0 * Failed *
assert_options
Определение параметров assert.
Синтаксис:
mixed assert_options(int parameter [, mixed value])
Эта функция позволяет определить поведение конструкции assert().
Возвращается предыдущее значение параметра (или значение false при ошибке), указанного в первом аргументе одной из следующих констант:
Параметр | ini-параметр | Умолчание | Описание |
ASSERT_ACTIVE | asser.active | 1 | Разрешить указание кода в assert(). |
ASSERT_WARNING | assert.warning | 1 | Выдавать предупреждение PHP. |
ASSERT_BAIL | assert.bail | 0 | Завершать выполнение, если "неистинно". |
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | Не выдавать сообщений. |
ASSERT_CALLBACK | assert_callback | (null) | Установить функцию в качестве обработчика "неистинных" assert(). |
Если значение необходимо переопределить, его указывают во втором аргументе.
eval
Производит выполнение строки содержащей PHP код.
Синтаксис:
void eval(string code_str);
Функция eval() производит выполнение строки, заданной в code_str содержащей PHP код. Кстати, это может пригодиться для сохранения кода в текстовом поле базы данных для более позднего выполнения. Не забывайте, что указанный в строке код должен быть синтаксически правильным (например, должны присутствовать точки с запятой после каждой команды и т.п.), в противном случае сценарий будет завершен в этой строке с ошибкой. Учитывайте также, что те значения переменных, которые будут установлены в данной строке, будут использоваться в оставшейся части сценария.
При изменении переменных значений в eval() эти переменные будут изменены и в основных данных.
Если в строке указан оператор return, то тогда выполнение указанного кода будет досрочно завершено и возвращенное значение можно будет получить как значение, возвращаемое самой функции.
<?php $string = 'cup'; $name = 'coffee'; $str = 'This is a $string with my $name in it. '; echo $str; eval( "$str = "$str";" ); echo $str; ?>
Результатом выполнения этого кода будет:
This is a $string with my $name in it. This is a cup with my coffee in it.