Можно ли расширить/заменить переменную до того, как PHP попытается оценить ее значение истинности?В PHP, как мне заменить строковую переменную до ее оценки?
Я пытаюсь закодировать один шаблон Wordpress, который будет выполнять разные запросы в зависимости от того, на какой странице мы находимся. Если мы находимся на главной странице, запрос должен выглядеть следующим образом:
while ($postlist->have_posts()) : $postlist->the_post();
// code...
Если мы не на главной странице, запрос должен выглядеть следующим образом:
while (have_posts()): the_post();
// code...
Так я думал, попробуйте это:
$query_prefix = (is_front_page()) ? '$postlist->' : '';
$query_condition = $query_prefix.'have_posts()';
$query_do = $query_prefix.'the_post()';
while ($query_condition): $query_do;
// code...
проблема, это создает бесконечный цикл, поскольку $query_condition
является строкой и имеет значение TRUE. Похоже, что PHP никогда не «читает» содержимое переменной. Мне нужна моя переменная, чтобы развернуть себя буквально, и только потом предлагать себя для оценки. Может ли кто-нибудь рассказать мне, как это сделать?
Не могу сказать. Согласно var_dump() это строка, имеющая разную длину. Поэтому он всегда будет оцениваться как «установлен» или «истина». –