我一直在读一本PHP5书,作者经常使用这种语法
${"{$something}_somethingelse"};
我不知道那是什么意思。它会动态生成一个变量名吗?
有人帮我吗?
参考方案
这是一种称为Variable variables的语言功能。
考虑以下代码:
$a = 'hello';
这很简单。它创建变量$a
并将其值设置为'hello'
。
让我们继续:
$$a = 'world';
${$a} = 'world';
基本上,由于$a = 'hello'
,这两个语句等效于:
$hello = 'world';
因此,以下内容:
echo "$a ${$a}";
等价于:
echo "$a $hello";
大括号{ }
括号用于防止歧义问题的发生。考虑以下:
$$a[1] = 'hello world';
您是否要分配以$a[1]
的值命名的变量,还是要分配以1
命名的变量的索引$a
?
对于第一选择,您将这样编写:
${$a[1]} = 'hello world';
对于第二种选择:
${$a}[1] = 'hello world';
你的例子
现在,以您为例。
让我们考虑一下:
$something = 'hello';
这样使用您的示例:
${"{$something}_somethingelse"} = 'php rocks';
本质上等效于:
$hello_somethingelse = 'php rocks';
PHP:不推荐使用password_hash的'salt'选项 - php我正在使用密码哈希进行注册。我需要手动创建Salt,以下是我使用的代码:$options = [ 'cost' => 11, 'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM) ]; $password = password_hash( $this->…
PHP-全局变量的性能和内存问题 - php假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…
PHP strtotime困境 - php有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00…
php-casperjs获取内部文本 - php我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…
PHP Laravel从另一个驱动器读取文件 - php我目前正在学习Laravel。我想知道是否有一种方法可以在Laravel中使用Storage::从另一个硬盘访问文件(使用Windows)。例如,我在驱动器C:上安装了带有Laravel的Xampp,但是我想访问网站目录之外的E:上的文件。我试过使用Storage::files('E:')和File::files('E:…