|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大家如果能懂得“熟能生巧”的道理也就明白了这并不是浪费时间,同时这也可以减轻板主的负担,让他们有时间去处理更难的问题。 1.复杂句律例则(用花括号界定变量名,合用于PHP一切版本):
$a = 'flower';
echo "She received some $as";
// 有效;字母s会被当做无效的变量名构成元素,然而这里的变量是$a
echo "She received some ${a}s"; // 无效
echo "She received some {$a}s"; // 无效;保举的利用办法
咱们但愿表达的是”她收到一些花“,语境中的flower应当采取单数模式(也就是说应当在前面加上S),然而假如不合错误变量做任何界定的话,就会呈现第一个echo的情形。明显咱们但愿输入的是$a而不是$as。那末咱们凡是是怎样来处置这个输入的呢?
echo "She received some $a"."s";
echo "She received some ".$a."s";
// 这两种习气性的写法应当没有加花括号的写法简约了然吧?
注重:不论{是呈现在$后面仍是前面,只要二者紧挨着时花括号才会被当做是界定符号。不要在之间加空格,要否则就会被看成通俗的花括号处置
echo "She received some { $a}s";
// 输入的了局为:She received some { flower}s
2.庞杂句律例则(用花括号界定表达式等,利用与PHP4+):
echo "无效的写法: {$arr[4][3]}";
// 无效;界定多维数组
echo "无效的写法: {$arr['foo'][3]}";
// 无效;当在字符串中利用多维数组时,必定要用括号将它括起来
echo "无效的写法: {$this->width}00";
// 无效;假如不界定的话,就会酿成 $this->width00
echo "无效的写法: {$this->value[3]->name}";
// 无效;该例演示了界定链式挪用
echo "无效的写法: $name: {${$name}}";
// 无效;该例演示的后果实践上是一个可变变量
echo "无效的写法: {${getName()}}";
// 无效;该例演示了将函数的前往值作为变量名
echo "无效的下发: {${$this->getName()}}";
// 无效;该例演示了将函数的前往值作为变量名
注重1:echo "如许写无效吗: {getName()}";输入了局为:'如许写无效吗:
{getName()}'。由于外面不含$,所以花括号不会被看成界定符
注重2:echo "如许写无效吗:{$arr[foo][3]}"; 在回覆这个成绩前咱们先来停止一个实行:
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd'=>'e');
echo "This is $arr[d]";
// 咱们发明如许写是没有成绩的,那末咱们像上面如许写呢?
echo $arr[d];
发生了如许的毛病:
Notice: Use of undefined constant d - assumed 'd'
注重:采取了不决义的常量d,能够应当为'd'
那末假如咱们像上面如许修正一下代码的话
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd'=>'e');
define('f', 'd');
echo $arr[f];
咱们发明此次没有成绩了。可以看出在字符串中数组的索引不加单引号是没有成绩的,然而假如这类写法不是呈现在字符串傍边就会报错,而关于字符串中{$arr[foo][3]}的解析就是依照非字符串的体例解析的。所以说在字符串傍边对数组只加花括号界定而不合错误索引加单引号的写法是毛病的。由于法式会把不加单引号的索引看成是常量来停止解析,这就发生了毛病。准确的写法应当是:
echo "无效的写法: {$arr['foo'][3]}";
出格提示一点:echo "This is $arr[d]";这类写法固然可以被法式解析,但这也仅限于数组是一维数组的情形。严谨的写法应当是:echo "This is {$arr['d']}";我的先生已经在这一点上和我争辩过,他说:既然后面一种写法能出了局,为何必定要用前面一种写法呢?那末,咱们再持续修正一下后面的代码
error_reporting(E_ALL);
$arr = array('a', 'b', 'c',
'd'=>array('e'=>'f')
);
echo "This is $arr[d][e]";
如许还可以被准确解析吗?我只想告知你,加花括号是严谨的需要的。固然,假如你不是我的先生那末我管不了那末多......
注重3:
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd');
echo "This is {$arr[2]}
";
echo "This is {$arr['2']}
";
履行下面的代码。了局是一样的,为何会如许呢?我只能告知你PHP是弱类型言语,至于甚么叫弱类型言语我就不在这里多说了。本人去Google一下吧。说了这么多,那末最能表现这些句律例则优势的详细使用在甚么中央呢?----SQL语句
// 示例一:
$SQL1 = "select * from table where id={$_GET['id']}";
// 示例二:
$SQL2 = "select * from table where id={$this->id}";
《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-) |
|