PHP句法規則詳解

2021-06-05 02:43:23 字數 2428 閱讀 6866

1.簡單句法規則(用花括號界定變數名,適用於php所有版本):

$a = 'flower';

echo "she received some $as";

// 無效;字母s會被當成有效的變數名組成元素,但是這裡的變數是$a

echo "she received some $s"; // 有效

echo "she received some s"; // 有效;推薦的使用方法

我們希望表達的是」她收到一些花「,語境中的flower應該採用複數形式(也就是說應該在後面加上s),但是如果不對變數做任何界定的話,就會出現第乙個echo的情況。顯然我們希望輸出的是$a而不是$as。那麼我們通常是怎麼來處理這個輸出的呢?

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

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

// 這兩種習慣性的寫法應該沒有加花括號的寫法簡潔明瞭吧?

注意:不管s";

// 輸出的結果為:she received some s

2.複雜句法規則(用花括號界定表示式等,使用與php4+):

echo "有效的寫法: ";

// 有效;界定多維陣列

echo "有效的寫法: ";

// 有效;當在字串中使用多維陣列時,一定要用括號將它括起來

echo "有效的寫法: 00";

// 有效;如果不界定的話,就會變成 $this->width00

echo "有效的寫法: ";

// 有效;該例演示了界定鏈式呼叫

echo "有效的寫法: $name: }";

// 有效;該例演示的效果實際上是乙個可變變數

echo "有效的寫法: }";

// 有效;該例演示了將函式的返回值作為變數名

echo "有效的下發: }";

// 有效;該例演示了將函式的返回值作為變數名

注意1:echo "這樣寫有效嗎: ";輸出結果為:'這樣寫有效嗎:

'。因為裡面不含$,所以花括號不會被當作界定符

注意2:echo "這樣寫有效嗎:"; 在回答這個問題前我們先來進行乙個實驗:

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];

我們發現這次沒有問題了。可以看出在字串中陣列的索引不加單引號是沒有問題的,但是如果這種寫法不是出現在字串當中就會報錯,而對於字串中的解析就是按照非字串的方式解析的。所以說在字串當中對陣列只加花括號界定而不對索引加單引號的寫法是錯誤的。因為程式會把不加單引號的索引當作是常量來進行解析,這就產生了錯誤。正確的寫法應該是:

echo "有效的寫法: ";

特別提醒一點:echo "this is $arr[d]";這種寫法雖然能夠被程式解析,但這也僅限於陣列是一維陣列的情況。嚴謹的寫法應該是:echo "this is ";我的學生曾經在這一點上和我爭論過,他說:既然前面一種寫法能出結果,為什麼一定要用後面一種寫法呢?那麼,我們再繼續修改一下前面的**

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

";echo "this is

";執行上面的**。結果是一樣的,為什麼會這樣呢?我只能告訴你php是弱型別語言,至於什麼叫弱型別語言我就不在這裡多說了。自己去google一下吧。說了這麼多,那麼最能體現這些句法規則優勢的具體應用在什麼地方呢?----sql語句

// 示例一:

$sql1 = "select * from table where id=";

// 示例二:

$sql2 = "select * from table where id=";

PHP句法規則詳解

1.簡單句法規則 用花括號界定變數名,適用於php所有版本 a flower echo she received some as 無效 字母s會被當成有效的變數名組成元素,但是這裡的變數是 a echo she received some s 有效 echo she received some s ...

PHP句法規則詳解

1.簡單句法規則 用花括號界定變數名,適用於php所有版本 a flower echo she received some as 無效 字母s會被當成有效的變數名組成元素,但是這裡的變數是 a echo she received some s 有效 echo she received some s ...

PHP句法規則詳解 入門學習

1.簡單句法規則 用花括號界定變數名,適用於php所有版本 複製 如下 a flower echo she received some as 無效 字母s會被當成有效的變數名組成元素,但是這裡的變數是 a echo she received some s 有效 echo she received s...