PHP Curly括号,这段代码的含义是什么

时间:2010-12-30 15:16:03

标签: php mybb

我有这段代码(用于从MyBB源中的数据库获取查询):

$query = "SELECT ".$fields." FROM {$this->table_prefix}{$table}";

我的问题是:{$table}的含义是什么? $ table和{$table}之间有什么区别({}的意思是什么?)

谢谢...

3 个答案:

答案 0 :(得分:4)

这是用双引号内联表达式的PHP语法。如果你有简单的表达式,比如变量名,你就可以使用$ table而不用担心{}。

答案 1 :(得分:2)

大括号只是将变量名称与文本的其余部分(以及其他变量名称)隔离开来。通常,此语法用于一致性;当你有变量遇到其他字母时有时是必要的,但许多程序员总是使用它,所以他们永远不必考虑是否有必要。

请参阅the documentation

答案 2 :(得分:0)

$query = "SELECT ".$fields." FROM {$this->table_prefix}{$table}";

将执行与

相同的操作
$query = "SELECT ".$fields." FROM $this->table_prefix$table";

在字符串中使用变量时,使用花括号是可读代码的好习惯(特别是那些没有语法高亮/色盲的人)。

样品:

<?php
class simple
{
    function __construct()
    {
        $this->table_prefix = "blablabla";
    }

    function doSomething()
    {
        $fields = "1,2,3";
        $table = "MyTable";
        $query = "SELECT ".$fields." FROM $this->table_prefix$table";
        return $query;
    }  
}
$a = new simple(); 
print $a->doSomething();

?>

TA