Что означает конструкция $ {$}?

Я новичок в PHP, поэтому, пожалуйста, извините, если этот вопрос является noob. Я не знаю его имени, поэтому не мог его найти. Я прочитал его в этом фрагменте кода. Что это значит?

Строка 5: ${$key}

 <?php $expected = array( 'carModel', 'year', 'bodyStyle' ); foreach( $expected AS $key ) { if ( !empty( $_POST[ $key ] ) ) { ${$key} = $_POST[ $key ]; } else { ${$key} = NULL; } } ?> 

Это то же самое, что и $$key и означает var с именем $key

т.е.

 $test = "foo"; 

такой же как

 $a = "test"; $$a = "foo"; 

Это переменная переменная. Подробнее читайте здесь: http://php.net/manual/en/language.variables.variable.php

Обозначение ${$key} – это альтернативный стиль записи, просто $$key который используется для переменных переменных .

Один конкретный случай, когда вы можете использовать эту нотацию, – это когда вы делаете такие трюки:

 $var = 'foo_x'; $key = 'x'; ${'foo_' . $x} = 'hello'; echo $foo_x; // hello 

Задайте переменную с именем $ key.

 $var = NULL; $name = 'var'; ${$name} = TRUE; var_dump($var); // TRUE 

Так же как:

 $$name = TRUE; 

Это способ использования имен динамических переменных. См. Здесь: http://php.net/manual/en/language.variables.variable.php

Это позволяет использовать сложные выражения.

Это называется сложным (фигурным) синтаксисом, вы можете найти дополнительную информацию по адресу http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex