2013-03-21 84 views
-2

我是PHP新手,所以如果这个问题是一个noob,请对不起。我不知道它的名字,所以找不到它。我在这段代码中读到它。这是什么意思?

5号线:${$key}

<?php 
    $expected = array('carModel', 'year', 'bodyStyle'); 

    foreach($expected AS $key) { 
     if (!empty($_POST[ $key ])) { 
      ${$key} = $_POST[ $key ]; 
     } else { 
      ${$key} = NULL; 
     } 
    } 
?> 
+1

其实更多的信息,它不是'$ {$'符号,而是一个[变量变量(http://php.net/manual /en/language.variables.variable.php) – 2013-03-21 13:30:04

+2

,它不是“什么”,而是“什么”。 – Alex 2013-03-21 13:36:11

回答

3

这是一样的$$key和手段名为$key

$test = "foo"; 

VAR是相同的名称为$

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

设置变量键。

$var = NULL; 

$name = 'var'; 

${$name} = TRUE; 

var_dump($var); // TRUE 

除了:

$$name = TRUE; 
1

的符号${$key}是简单地$$key它用于variable variables替代的写作风格。在其中您可以使用符号

一个特殊情况是,当你做花样这样的:

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

echo $foo_x; // hello 
0

它允许使用复杂的表达式。

这就是所谓的复杂的(大)语法,你可以找到在http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex

+0

+1。这实际上是试图回答这个问题:) – 2013-03-21 13:35:57

+0

看看这篇文章,有更多的信息在你的第二个答案。 http://stackoverflow.com/questions/5571624/php-syntax-question-what-is – llanato 2013-03-21 13:41:11

+0

该特定答案的最大部分是简单的从手册页撕开;-) – 2013-03-21 13:45:44