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

首頁 > 開發 > PHP > 正文

PHP句法規則詳解 入門學習

2024-05-04 23:16:21
字體:
來源:轉載
供稿:網友
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]} <br />";
echo "This is {$arr['2']} <br />";


執行上面的代碼。結果是一樣的,為什么會這樣呢?我只能告訴你PHP是弱類型語言,至于什么叫弱類型語言我就不在這里多說了。自己去Google一下吧。說了這么多,那么最能體現這些句法規則優勢的具體應用在什么地方呢?----SQL語句

復制代碼 代碼如下:


// 示例一:
$SQL1 ="select * from table where id={$_GET['id']}";// 示例二:
$SQL2 ="select * from table where id={$this->id}";


OK,花括號我們就玩到這里了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舟山市| 重庆市| 利津县| 黄龙县| 三原县| 兴义市| 搜索| 敖汉旗| 滨州市| 洛阳市| 遂平县| 安阳市| 晋城| 门源| 台北市| 仁寿县| 杭州市| 鄯善县| 光泽县| 遂川县| 恭城| 宣恩县| 仁布县| 集贤县| 荥经县| 鹤壁市| 万安县| 团风县| 定安县| 尖扎县| 江源县| 庆安县| 满洲里市| 南召县| 绩溪县| 胶州市| 东乌珠穆沁旗| 金湖县| 吴堡县| 阳信县| 平塘县|