Вызовите функцию, когда сценарий будет завершен

В цитате из документации существует два отдельных понятия - возможно, могло бы быть лучше, если бы документация сделала это более ясным:

существует несколько шаблонов в Какао, которые используют в своих интересах этот факт.

значение, возвращенное от сообщения до ноля, может также быть допустимым:

Первый, вероятно, более релевантен здесь: обычно способность отправить сообщения в nil делает код более простым - Вы не должны проверять на нулевые значения везде. Каноническим примером является, вероятно, метод доступа:

- (void)setValue:(MyClass *)newValue {
    if (value != newValue) { 
        [value release];
        value = [newValue retain];
    }
}

При отправке сообщений в nil не были допустимы, этот метод будет более сложным - у Вас должно было бы быть две дополнительных проверки для обеспечения value, и newValue не nil прежде, чем отправить им сообщения.

последний вопрос (который оценивает, возвратился от сообщения до nil, является также обычно актуальным), тем не менее, добавляет эффект множителя к первому. Например:

if ([myArray count] > 0) {
    // do something...
}

Этот код снова не требует проверки на nil значения и течет естественно...

Все это сказало, дополнительная гибкость, что способность отправить сообщения в nil действительно прибывает в некоторую стоимость. Существует возможность, что Вы будете на некотором этапе писать код, который перестал работать специфическим способом, потому что Вы не приняли во внимание возможность, что значение могло бы быть nil.

7
задан uınbɐɥs 23 September 2012 в 00:15
поделиться

3 ответа

используйте register_shutdown_function () :

http://docs.php.net/manual/en/function.register-shutdown-function.php

15
ответ дан 6 December 2019 в 10:02
поделиться

Магический метод __destruct () для классов также запускается при завершении работы, если вы сначала не отключите объект класса. Хотя ответ Scharrels проще, если вы просто хотите зарегистрировать нормальную функцию. См. http://docs.php.net/manual/en/language.oop5.decon.php#language.oop5.decon.destructor

Одна вещь, которую следует иметь в виду при запуске скриптов в выключенном состоянии: это происходит после того, как вывод будет отправлен в браузер, поэтому вы не увидите никаких ошибок на экране. Не забудьте записывать ошибки в файл для функций выключения!

4
ответ дан 6 December 2019 в 10:02
поделиться

Я не Не знаю, поможет ли это, но вы можете сделать это наоборот.

Определите такую ​​функцию:

function terminate() // you might want to have parameters here to handle different cases
{
    the_function_to_call();
    die(); // or exit();
}

Затем внутри вашего кода вызовите terminate () вместо die ( ) или exit () .

0
ответ дан 6 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: