我一直在阅读PHP5书,作者通常使用这种语法
${"{$something}_somethingelse"};
Run Code Online (Sandbox Code Playgroud)
我不知道这意味着什么.它是否动态生成变量名称?
有人帮帮我吗?
它是一种称为变量变量的语言功能.
考虑以下代码:
$a = 'hello';
Run Code Online (Sandbox Code Playgroud)
这很简单.它创建变量$a并将其值设置为'hello'.
让我们继续:
$$a = 'world';
${$a} = 'world';
Run Code Online (Sandbox Code Playgroud)
基本上,因为$a = 'hello',这两个陈述相当于:
$hello = 'world';
Run Code Online (Sandbox Code Playgroud)
所以以下内容:
echo "$a ${$a}";
Run Code Online (Sandbox Code Playgroud)
相当于做:
echo "$a $hello";
Run Code Online (Sandbox Code Playgroud)
{ }括号用于防止出现歧义问题.考虑以下:
$$a[1] = 'hello world';
Run Code Online (Sandbox Code Playgroud)
是否要分配以值的名称命名的变量,$a[1]或者是否要分配1名为after的变量的索引$a?
对于第一个选择,您可以这样写:
${$a[1]} = 'hello world';
Run Code Online (Sandbox Code Playgroud)
对于第二种选择:
${$a}[1] = 'hello world';
Run Code Online (Sandbox Code Playgroud)
现在,为你的例子.
让我们考虑一下:
$something = 'hello';
Run Code Online (Sandbox Code Playgroud)
使用您的示例:
${"{$something}_somethingelse"} = 'php rocks';
Run Code Online (Sandbox Code Playgroud)
基本上相当于做:
$hello_somethingelse = 'php rocks';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |