国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

關(guān)于php中{}的使用

2019-11-08 03:13:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.簡(jiǎn)單句法規(guī)則(用花括號(hào)界定變量名,適用于php所有版本):

$a = 'flower';echo "She received some $as";

// 無(wú)效;字母s會(huì)被當(dāng)成有效的變量名組成元素,但是這里的變量是$a

echo "She received some ${a}s"; // 有效echo "She received some {$a}s"; // 有效;推薦的使用方法

我們希望表達(dá)的是”她收到一些花“,語(yǔ)境中的flower應(yīng)該采用復(fù)數(shù)形式(也就是說(shuō)應(yīng)該在后面加上S),但是如果不對(duì)變量做任何界定的話,就會(huì)出現(xiàn)第一個(gè)echo的情況。顯然我們希望輸出的是a而不是as。那么我們通常是怎么來(lái)處理這個(gè)輸出的呢?

echo "She received some $a"."s";echo "She received some ".$a."s";

// 這兩種習(xí)慣性的寫(xiě)法應(yīng)該沒(méi)有加花括號(hào)的寫(xiě)法簡(jiǎn)潔明了吧? 注意:不管{是出現(xiàn)在$前面還是后面,只有兩者緊挨著時(shí)花括號(hào)才會(huì)被當(dāng)成是界定符號(hào)。不要在之間加空格,要不然就會(huì)被當(dāng)作普通的花括號(hào)處理

echo "She received some { $a}s";// 輸出的結(jié)果為:She received some { flower}s

2.復(fù)雜句法規(guī)則(用花括號(hào)界定表達(dá)式等,使用與PHP4+):

echo "有效的寫(xiě)法: {$arr[4][3]}";// 有效;界定多維數(shù)組echo "有效的寫(xiě)法: {$arr['foo'][3]}";// 有效;當(dāng)在字符串中使用多維數(shù)組時(shí),一定要用括號(hào)將它括起來(lái)echo "有效的寫(xiě)法: {$this->width}00";// 有效;如果不界定的話,就會(huì)變成 $this->width00echo "有效的寫(xiě)法: {$this->value[3]->name}";// 有效;該例演示了界定鏈?zhǔn)秸{(diào)用echo "有效的寫(xiě)法: $name: {${$name}}";// 有效;該例演示的效果實(shí)際上是一個(gè)可變變量echo "有效的寫(xiě)法: {${getName()}}";// 有效;該例演示了將函數(shù)的返回值作為變量名echo "有效的下發(fā): {${$this->getName()}}";// 有效;該例演示了將函數(shù)的返回值作為變量名注意1:echo "這樣寫(xiě)有效嗎: {getName()}";輸出結(jié)果為:'這樣寫(xiě)有效嗎:{getName()}'。因?yàn)槔锩娌缓?,所以花括號(hào)不會(huì)被當(dāng)作界定符注意2:echo "這樣寫(xiě)有效嗎:{$arr[foo][3]}";

在回答這個(gè)問(wèn)題前我們先來(lái)進(jìn)行一個(gè)實(shí)驗(yàn):

error_reporting(E_ALL);$arr = array('a', 'b', 'c', 'd'=>'e');echo "This is $arr[d]";// 我們發(fā)現(xiàn)這樣寫(xiě)是沒(méi)有問(wèn)題的,那么我們像下面這樣寫(xiě)呢?echo $arr[d];

產(chǎn)生了這樣的錯(cuò)誤: Notice: Use of undefined constant d - assumed ‘d’ 注意:采用了未定義的常量d,可能應(yīng)該為’d’ 那么如果我們像下面這樣修改一下代碼的話

error_reporting(E_ALL);$arr = array('a', 'b', 'c', 'd'=>'e');define('f', 'd');echo $arr[f];

我 們發(fā)現(xiàn)這次沒(méi)有問(wèn)題了。可以看出在字符串中數(shù)組的索引不加單引號(hào)是沒(méi)有問(wèn)題的,但是如果這種寫(xiě)法不是出現(xiàn)在字符串當(dāng)中就會(huì)報(bào)錯(cuò),而對(duì)于字符串中 {$arr[foo][3]}的解析就是按照非字符串的方式解析的。所以說(shuō)在字符串當(dāng)中對(duì)數(shù)組只加花括號(hào)界定而不對(duì)索引加單引號(hào)的寫(xiě)法是錯(cuò)誤的。因?yàn)槌绦?會(huì)把不加單引號(hào)的索引當(dāng)作是常量來(lái)進(jìn)行解析,這就產(chǎn)生了錯(cuò)誤。正確的寫(xiě)法應(yīng)該是:

echo "有效的寫(xiě)法: {$arr['foo'][3]}";特別提醒一點(diǎn):echo "This is $arr[d]";

這種寫(xiě)法雖然能夠被程序解析,但這也僅限于數(shù)組是一維數(shù)組的情況。嚴(yán)謹(jǐn)?shù)膶?xiě)法應(yīng)該是:

echo "This is {$arr['d']}";

我的學(xué)生曾經(jīng)在這一點(diǎn)上和我爭(zhēng)論過(guò),他說(shuō):既然前面一種寫(xiě)法能出結(jié)果,為什么一定要用后面一種寫(xiě)法呢?那么,我們?cè)倮^續(xù)修改一 下前面的代碼

error_reporting(E_ALL);$arr = array('a', 'b', 'c','d'=>array('e'=>'f'));echo "This is $arr[d][e]";

這樣還能夠被正確解析嗎?我只想告訴你,加花括號(hào)是嚴(yán)謹(jǐn)?shù)谋匾摹?注意3:

error_reporting(E_ALL);$arr = array('a', 'b', 'c', 'd');echo "This is {$arr[2]} ";echo "This is {$arr['2']} ";

執(zhí)行上面的代碼。結(jié)果是一樣的,為什么會(huì)這樣呢?我只能告訴你PHP是弱類型語(yǔ)言,至于什么叫弱類型語(yǔ)言我就不在這里多說(shuō)了。自己去Google一下吧。說(shuō)了這么多,那么最能體現(xiàn)這些句法規(guī)則優(yōu)勢(shì)的具體應(yīng)用在什么地方呢?—-SQL語(yǔ)句

// 示例一:$SQL1 = "select * from table where id={$_GET['id']}";// 示例二:$SQL2 = "select * from table where id={$this->id}";
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 花垣县| 克山县| 青龙| 北碚区| 舒兰市| 普宁市| 铜鼓县| 泰宁县| 浦东新区| 奉节县| 沁水县| 河南省| 宜章县| 连州市| 田林县| 金阳县| 犍为县| 永清县| 昂仁县| 武隆县| 集贤县| 和田县| 平陆县| 南乐县| 大荔县| 岑巩县| 平顺县| 石台县| 泗水县| 镇雄县| 汉阴县| 定南县| 西峡县| 永泰县| 兰坪| 理塘县| 靖安县| 县级市| 游戏| 大庆市| 广水市|