Объединение переменных PHP

#php #string-concatenation

#php #строка-конкатенация

Вопрос:

Я пытаюсь изменить жестко заданное значение переменной на динамическое, но, похоже, не удается выполнить правильную конкатенацию…

Жестко заданное значение равно…

 $token = "../wp-content/themes/mytheme/styles/test/sidebar";
  

И я пытаюсь заменить это на…

 $token = ".get_bloginfo('template_directory')."styles/test/sidebar";
  

Но это работает не так, как когда я жестко кодирую значение.

Чего мне не хватает?

Вот остальная часть кода (функция imagegif никогда не запускается с динамически генерируемой переменной…

 $color = imagecolorallocate($img, $info["red"], $info["green"], $info["blue"]);
    for ($i = $startPixel-1; $i < $endPixel; $i  )
    {
        imagesetpixel($img, $i, 0, $color);
    }

    imagegif($img, $token.'.gif');
}
  

Ответ №1:

 $token = get_bloginfo('template_directory') . "styles/test/sidebar";
  

. — это оператор конкатенации, поэтому вам не хотелось бы, чтобы функция get_bloginfo() была заключена в кавычки. Предполагается, что функция возвращает строку, которая заканчивается на /

Комментарии:

1. Спасибо Фоско, я это пропустил. Также пришлось поставить «/» перед «стилями».

Ответ №2:

 $token = get_bloginfo('template_directory')."styles/test/sidebar";
  

Это то, что вы имеете в виду? У вас была функция в виде строки вместо функции.

Ответ №3:

Из вашего кода:

 $token = ".get_bloginfo('template_directory')."styles/test/sidebar";
  

В начале этой строки есть случайная кавычка и точка. Вы, вероятно, хотели сделать:

 $token = get_bloginfo('template_directory') . "styles/test/sidebar";
  

Вызовы функций не могут находиться внутри строк, а оператор конкатенации ( . ) должен находиться вне строки.

Ответ №4:

В кавычки следует заключать только строки.

 $token = get_bloginfo('template_directory') . "styles/test/sidebar";
  

Ответ №5:

Ваша конкатенация немного не в порядке.

Попробуйте: $token = get_bloginfo('template_directory') . 'styles/test/sidebar';

Комментарии:

1. «У вас немного не в порядке с конкатенацией». … вопрос не в этом?

2. Возможно, я имел в виду, что его стиль объединения немного странный. Но да, я думаю, это был вопрос;-)