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

php
41
Red Virus 24 Фев 2016 в 12:30

3 ответа

Лучший ответ

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

Вы знаете, что строку можно указать четырьмя разными способами. Два из этих способов - двойные кавычки ("") и синтаксис heredoc. Вы можете определить переменную в этих двух типах строк, и интерпретатор 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- фигурные-скобки-как-и-когда-использовать-это /

72
TecBrat 11 Окт 2017 в 16:01

С опозданием на пару лет, но позвольте мне добавить:

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

Примере:

$username_method = 'username';
$realname_method = 'realname';

$username = $user->{$username_method}; // $user->username;
$name = $user->{$realname_method}; // $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

13
Viktor Borítás 5 Апр 2020 в 22:50

Насколько я знаю, для переменной можно использовать $x

echo "this is my variable value : $x dollars";

… Но если у вас нет пробелов между переменной и текстом вокруг нее, вы должны использовать {}. Например:

echo "this is my variable:{$x}dollars";

Потому что, если вы написали его $xdollars, он интерпретирует его как другую переменную.

0
msg 21 Июн 2019 в 00:21