Как сделать что-то вроде следующего в PHP-скрипте?Может ли скрипт PHP выполнять общий код перед выходом()?
code{
$result1 = task1() or break;
$result2 = task2() or break;
}
common_code();
exit();
Как сделать что-то вроде следующего в PHP-скрипте?Может ли скрипт PHP выполнять общий код перед выходом()?
code{
$result1 = task1() or break;
$result2 = task2() or break;
}
common_code();
exit();
С помощью справочной системы PHP вы можете указать функцию, которая вызывается после выхода(), но до завершения скрипта.
Не стесняйтесь проверить DOCO для получения дополнительной информации http://us3.php.net/manual/en/function.register-shutdown-function.php
<?php
function shutdown()
{
// This is our shutdown function, in
// here we can do any last operations
// before the script is complete.
echo 'Script executed with success', PHP_EOL;
}
register_shutdown_function('shutdown');
?>
Если вы используете ООП, тогда вы можете поместить код, который хотите выполнить при выходе, в деструктор вашего класса.
class example{
function __destruct(){
echo "Exiting";
}
}
Ваш пример, вероятно, слишком упрощенным, так как он может легко быть переписан следующим образом:
if($result1 = task1()) {
$result2 = task2();
}
common_code();
exit;
Возможно, вы пытаетесь для создания контроля потока следующим образом:
do {
$result1 = task1() or break;
$result2 = task2() or break;
$result3 = task3() or break;
$result4 = task4() or break;
// etc
} while(false);
common_code();
exit;
Вы также можете использовать:
switch(false) {
case $result1 = task1(): break;
case $result2 = task2(): break;
case $result3 = task3(): break;
case $result4 = task4(): break;
}
common_code();
exit;
Или в PHP 5.3 вы можете использовать goto
:
if(!$result1 = task1()) goto common;
if(!$result2 = task2()) goto common;
if(!$result3 = task3()) goto common;
if(!$result4 = task4()) goto common;
common:
echo "common code\n";
exit;