什么是PHP中的$ {0} = 1

时间:2016-03-03 17:19:07

标签: php

有人可以解释这项任务发生了什么吗? 我在哪里可以阅读手册?

${0} = 1; 

3 个答案:

答案 0 :(得分:1)

在这种特殊情况下,

${0}是一种用数字命名变量的方法,但是你必须确保以相同的方式调用变量,因为$0将不起作用。

更多例子:

${'foo'} = 'bar';

echo $foo;

将回显bar,因为${'foo'} =$foo =基本相同。

这允许您在变量定义中执行字符串操作:例如:

$string = 'foobar';

${str_replace('foo','bar',$string)} = 'foofoo';

echo $barbar;

将回复foofoo

此外,在解析后的字符串中使用大括号围绕变量将确保解析器不会混淆。例如:

$car = "Buick";

echo "The cars were all $cars"; // won't work because it will look for variable $cars

echo "The cars were all {$car}s"; // OR

echo "The cars were all ${car}s"; // will both echo The cars were all Buicks

变量名中花括号的用途更多,请参阅其他答案中的链接以了解更多信息。

答案 1 :(得分:0)

请记住,花括号字面意思是“评估花括号内的内容”,因此,您可以将变量变量创建压缩成一行,如下所示:

<?php
  ${"title_default_" . $title} = "selected";
?>

然后,例如

<?php
 $title_select = '
    <select name="title">
      <option>Select</option>
      <option $title_default_Mr  value="Mr">Mr</option>
      <option $title_default_Ms  value="Ms">Ms</option>
      <option $title_default_Mrs value="Mrs">Mrs</option>
      <option $title_default_Dr  value="Dr">Dr</option>
    </select>';
echo $title_select;?>

您可以阅读有关此http://docs.php.net/manual/en/language.variables.variable.php

的更多信息

我们可以玩更多!

你不能使用'普通'全局变量来访问它们,但是花括号形式的工作原理就像通过$ GLOBALS超全局变量获取它们一样!值被转换为字符串,这就是为什么0xFF =&gt; '255'等等。

${007} = 'Hello Peter'; // $GLOBALS['7']
${0xFF} = 'Hello Peter'; // $GLOBALS['255']
${2 + 2} = 'Hello Peter'; // $GLOBALS['4']
${'Hello Peter'} = 'Hello Peter'; // $GLOBALS['Hello Peter']
${'cats, pet food, dogs'} = 'Hello Peter'; // $GLOBALS['cats, pet food, dogs']

答案 2 :(得分:0)

这称为Variable Variables。虽然这不是一个好用法,因为它设法定义一个名为${0}的变量。

您可以在此处详细了解:http://php.net/manual/en/language.variables.variable.php