1。简单语法规则(用括号定义变量名,适用于PHP的所有版本):
复制代码代码如下所示:
美元=花;
她收到了一些$ ;无效;字母S可以被视为一个有效的变量名元素,但是变量是$ a
她收到了一些美元;
她收到了一些{美元};有效地使用了推荐的方法;

我们想表达的是她收到了一些花。语境中的花应该是复数的(也就是说,应该是后来添加的),但是如果我们没有定义任何变量,第一回波出现。显然我们希望输出美元而不是美元as.so我们如何通常处理输出
复制代码代码如下所示:
她收到了一些美元。;
答:她收到了一些。

注:无论{出现在$前面还是后面,括号都被视为定义符号,只有当两个相邻的时候,不要在它们之间增加空格,否则它们将被当作普通括号对待。

她收到了一些{美元};


2。复杂的句法规则(使用括号来定义表达式,等等,使用PHP4 +):
复制代码代码如下所示:
回声有效写作:{ $ ARR { 4 } { 3 } }; / /定义多维数组;
回声有效写作:{ $ ARR { 'foo} { 3 } }; / /有效;当使用多维数组中的字符串,必须用括号括起来。
回声有效写作:{美元->宽度} 00; / /有效;如果没有定义,将成为美元-> width00
有效写入:{ $这个值{ { 3 } };名称};有效;这个示例演示了链接的定义
呼应有效的写作:名称:{ $ } };有效;这个例子演示了效果实际上是一个变量。
回声有效写作:{ $ { getName(} }); / /有效;这个例子演示了返回值的函数作为变量名
回声发布:{ $ { $这-> getName(} }); / /有效;这个例子演示了返回值的函数作为变量名

注意1:回声这样写有效:getName(){ };输出的结果是:这是写有效:
({ getName)},因为它里面没有美元,括号中不被视为一个分隔符。
注意2:回声是有效:{ $ ARR { foo } { 3 } };在回答这个问题之前,我们先做一个实验:
复制代码代码如下所示:
error_reporting(e_all);
$ ARR =阵列(A,B,C,D = > e);
回声这是$ ARR {d} ; / /我们认为写作是没有问题的,所以我们这样吗
echo ARR {d};

有这样的错误。
注意:使用未定义常数d假设
注意:一个未定义的常数d可能用于
如果我们像这样修改代码
复制代码代码如下所示:
error_reporting(e_all);
$ ARR =阵列(A,B,C,D = > e);
定义(F,D);
echo ARR { F };

我们发现这一次没有问题,可以看出字符串中数组的索引不是一个没有单引号的问题,但是如果这个方法在字符串中不出现,那就错了。对于字符串,解析{ $ ARR {富} { 3 } }的方法是基于非字符串。所以说,在一系列的错误,这是不可能写一个数组的括号和不加引号的指标。因为程序使用索引索引为解析一个常数,它是错误的。正确的写作方式应该是:

回声有效写作:{ $ ARR { 'foo} { 3 } };

特别提醒:回声这是$ ARR {d} ;这种写作风格可以解析的程序,但这仅限于一个数组的情况下是一个一维数组。严谨的写作方式应该是回声这是{ } } { $ ARR会。我的学生曾经和我争论过这一点。他说:既然前一种方法可以产生结果,我们为什么还要使用后者呢所以,让我们继续修改前面的代码
复制代码代码如下所示:
error_reporting(e_all);
$ ARR =阵列(A,B,C,D = >阵列(e =>F));
回声这是$ ARR {d} { e };

这能妥善解决吗我只是想告诉你,背带是绝对必要的。当然,如果你不是我的学生,那么我不能管理这么多…

注3:
复制代码代码如下所示:
error_reporting(e_all);
$ ARR =阵列(A,B,C,D);
回声这是{ $ ARR { 2 } };
回声这是{ } } { $ ARR 2;

执行上面的代码,结果是一样的。为什么会这样我只能告诉你,PHP是一种薄弱的语言,我不说什么是一种弱类型的语言。让我们去谷歌。这么多,具体应用这些语法规则的优势---- SQL语句
复制代码代码如下所示:
/ /样品:
为SQL1 = SELECT * FROM表id是{ $ _get { 'id' } } / / ;例2:
$ SQL2 =select * from表的id是{美元-> ID };

好的,我们在玩背带。