У меня есть набор пользовательских крючков, которые я хотел бы запланировать, построенный по этим строкам:
public function __construct(WPSM_Logger $injected_logger = null) { $this->cron_hooks[WPSM_CRONHOOK_SENDQUEUE] = array ("frequency" => 60); }
Затем, в конструкторе для моего класса Scheduler, я хотел бы зациклиться на $ this-> cronhooks и запланировать каждый крюк в этом массиве. Обычно я предпочитаю прямое и простое расширение переменной в двойных кавычках, например, что я делаю с именем $ name ниже, но я не могу понять, как это сделать с помощью массива и индекса.
foreach ($this->cron_hooks as $name => $options) { $freq = $options["frequency"]; echo "Hook '$name' will run every $freq seconds."; }
Я хотел бы покончить с посредником $freq = $options["frequency"];
линии, и что-то вроде этого в echo
строке:
foreach ($this->cron_hooks as $name => $options) { $freq = $options["frequency"]; echo "Hook '$name' will run every $options['frequency]seconds."; }
Однако я просто не могу заставить это работать. Есть ли что-то особенное, которого я пропускаю, или мне действительно нужно перетащить дополнительную переменную вместе со своей стороной?
вы пробовали это?
foreach ($this->cron_hooks as $name => $options) { echo "Hook '$name' will run every ${$options['frequency']} seconds."; }
Пытаться:
${options['frequency']}
Смотрите: http://www.php.net/manual/en/language.types.string.php и найдите «фигурные скобки»,