У меня есть ситуации, когда это работает в PHP5, но fatals в PHP7:совместимость Переменный функция PHP 7 и PHP5
/* load batch processing data into variable */
$args = get_option('leads_batch_processing');
/* process batches */
self::$args['method']($args);
И это работает в PHP7 но fatals PHP5:
/* load batch processing data into variable */
$args = get_option('leads_batch_processing');
/* process batches */
self::{$args['method']}($args);
Как может Я успешно использую функцию переменной в обеих средах PHP? Я попытался использовать условие if на основе PHP-версии, но синтаксис версии PHP7 устарел PHP5, поэтому я не могу пройти этот маршрут.
Что мне делать?
[call_user_func ()] (http://php.net/manual/en/function.call-user-func.php)? –
Не могли бы вы предложить это как ответ? В случае выше $ args не является частной или статической переменной. Но внутри $ args ['method'] есть имя функции, которое существует в вызывающем классе (self: :) – atwellpub
Второй код должен работать как на PHP 5, так и на PHP 7. Убедитесь, что вы не тестируете некоторые устаревшие PHP версии (например, 5.3). – NikiC