php/managfun/script/fun

Материал из Справочник Web-языков.

Перейти к: навигация, поиск
Главная  ::. PHP  ::. Управляющие функции  ::. Управление исполнением сценария PHP  ::. Функции управления сценарием

Содержание

[править] 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_BAIL1);
// вызвать обработчик
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.
Личные инструменты
1.98187398911