Когда обернуть фигурные скобки вокруг переменной

Я не знаю, как это объяснить, но в простых сроках я видел людей, использующих {$variable} при выводе значений. Я заметил что {$variable} не работает все Когда мы должны использовать {$variable}?

23

Решение

Что такое PHP фигурные скобки:

Вы знаете, что строку можно указать четырьмя различными способами. Два из этих способов — двойные кавычки («») и синтаксис heredoc. Вы можете определить переменную в этих 2 типах строк, и интерпретатор PHP также будет анализировать или интерпретировать эту переменную в строках.

Теперь есть два способа определения переменной в строке — простой синтаксис, который является наиболее используемым методом определения переменных внутри строки, и сложный синтаксис, который использует фигурные скобки для определения переменных.

Синтаксис фигурных скобок:

Использовать переменную с фигурными скобками очень просто. Просто оберните переменную с помощью {и}, как:

{$variable_name}

Примечание. Между {и $ не должно быть пробелов. Иначе, интерпретатор PHP не будет рассматривать строку после $ как переменную.

Пример фигурных скобок:

<?php
$lang = "PHP";
echo "You are learning to use curly braces in {$lang}.";
?>

Выход:

You are learning to use curly braces in PHP.

Когда использовать фигурные скобки:

Когда вы определяете переменную внутри строки, PHP может смешивать переменную с другими символами, если для определения переменной используется простой синтаксис, и это приведет к ошибке. Смотрите пример ниже:

<?php
$var = "way";
echo "Two $vars to defining variable in a string.";
?>

Выход:

Notice: Undefined variable: vars …

В приведенном выше примере интерпретатор PHP рассматривает переменную $ vars, но эта переменная равна $ var. Чтобы разделить имя переменной и другие символы внутри строки, вы можете использовать фигурные скобки. Теперь посмотрите на приведенный выше пример с использованием фигурных скобок:

<?php
$var = "way";
echo "Two {$var}s to define a variable in a string.";
?>

Выход:

Two ways to define a variable in a string.

Источник: http://schoolsofweb.com/php-curly-braces-how-and-when-to-use-it/

46

Другие решения

Несколько лет спустя, но могу я добавить.

Вы даже можете использовать переменную в фигурных скобках для динамического доступа к методам объекта из класса.

Например,

$usernamemethod = 'username';
$realnamemethod = 'realname';

$username = $user->{$usernamemethod}; // $user->username;
$name = $user->{$realnamemethod}; // $user->realname

Не хороший пример, но для демонстрации функциональности.

Еще один пример по запросу @ kapreski в комментариях.

/**Lets say you need to get some details about the user and store in an
array for whatever reason.
Make an array of what properties you need to insert.
The following would make sense if the properties was massive. Assume it is
**/

$user = $this->getUser(); //Fetching User object

$userProp = array('uid','username','realname','address','email','age');

$userDetails = array();

foreach($userProp as $key => $property) {
$userDetails[] =  $user->{$property};
}

print_r($userDetails);

После завершения цикла вы увидите записи, извлеченные из пользовательского объекта в вашем $userDetails массив.

Проверено на php 5.6

8

По вопросам рекламы [email protected]