當前位置:才華齋>計算機>php語言>

php中大括號作用介紹

php語言 閱讀(1.21W)

在學過小括號之後,可能會有許多小朋友都會有點小迷惑,括號在算式中到底有何作用?{}大括號在PHP中的作用是什麼呢?(PHP變數放在大括號裡面的含義)

php中大括號作用介紹

一、不管什麼程式,function name(){}, for(){}, ….太多了,不說也知道做什麼用了。

二、$str{4}在字串的變數的後面跟上{}剛大括號和中括號一樣都是把某個字串變數當成陣列處理。

三、{$val}這時候大括號起的作用就是,告訴PHP,括起來的要當成變數處理。

複製程式碼 程式碼如下:

$arr=array(0=>123, 'name'=>'你好');

foreach($array as $k=>$v){

echo "select * from blog_blogs where blog_tags like '%{$arr[$k]}%' order by blog_id"; //加一個大括號只是將作為變數的標誌符

}

echo '<br/ ><br/ ><br/ ><br/ ><br/ ><br/ ><br/ >';

foreach($array as $k=>$v){

echo "select * from blog_blogs where blog_tags like '%{{$arr[$k]}}%' order by blog_id"; //加兩個大括號,外層的將作為普通的字元

}

//用大括號來區分變數

//echo "$arr['name']"; //用此句會報語法錯誤

echo "{$arr['name']}"; //此句正常,大括號內的字元將作為變數來處理

//$str{4} 在字串的變數的'後面跟上{} 大括號和中括號一樣都是把某個字串變數當成陣列處理

$str = 'abcdefg';

echo $str{4};

{}大括號在php中的作用(PHP變數放在大括號裡面的含義)

如:$sql = "insert into article (`channel_id`,`title`,`detail`,`pub_time`) values ('{$cid}','{$title}','{$detail}','{$time}');";

不加似乎也可以,加{}是什麼意思呢?

還有欄位名 為什麼要以``包括呢?

==============================================

至少便於閱讀嘛~~~''是insert into語句要求的,因為字串要成對出現嘛

加{}有時候是為了防止變數名和後面的字串連在一起嘛

例如

{$cid}dd

如果cid=aa

那麼{$cid}dd=aadd

不加的話你自己看看了$ciddd,豈不變成了ciddd變量了~~

PHP 變數後面加上一個大括號{},裡面填上數字,就是指 PHP 變數相應序號的字元。

例如:

$str = 'hello';

echo $str{0}; // 輸出為 h

echo $str{1}; // 輸出為 e

如果要檢查某個字串是否滿足多少長度,可以考慮用這種大括號(花括號)加 isset 的方式替代 strlen 函式,因為 isset 是語言結構,strlen 是函式,所以使用 isset 比使用 strlen 效率更高。

比如判斷一個字串的長度是否小於 5:

if ( !isset ( $str{5} ) ) 就比 if ( strlen ( $str ) < 5 ) 好。

下面幾個比較能說明原因的解釋是:

表示{}裡面的是一個變數 ,執行時按照變數來處理 在字串中引用變數使用的特殊包括方式,這樣就可以不使用.運算子,從而減少程式碼的輸入量了。

其實輸出那塊是等同於print "hello ".$arr['fruit'];

  一、使用大括號的變數

前一篇日誌提到了,PHP Notice警告的是下面一句:

switch (${action}.'_'.${child}) {

初看並沒有什麼問題。我也查詢了PHP手冊上關於變數的定義:這裡。

1、可變變數的情況

可見,與大部分資料一樣,變數使用大括號的情況,在於“可變變數”(Variable variables)。其中提到:

引用

In order to use variable variables with arrays, you have to resolve an ambiguity problem. That is, if you write $$a[1] then the parser needs to know if you meant to use $a[1] as a variable, or if you wanted $$a as the variable and then the [1] index from that variable. The syntax for resolving this ambiguity is: ${$a[1]} for the first case and ${$a}[1] for the second.

也就是說,為了在陣列環境中也可以使用可變變數,因此,需要根據不同的情況,恰當的使用大括號{}限制變數的範圍。${$a[1]} 與${$a}[1] 是完全不同的:

引用

${$a[1]} 這裡$a[1]是一個變數;

${$a}[1] 這裡$a是一個變數;

2、定界、避免歧義

實際上,這情況與可變變數時類似。例如,若使用“.”連線符,連線一個字串,可能是這樣:

echo $str.'_2010';

用大括號來寫,可能更簡單:

echo "${str}_2010";

可見,如果沒有大括號,則可能把$str_2010整個作為一個變數來處理。當然,這樣的寫法,只能用在雙引號中,單引號裡面是不會執行變數替換的。

3、字串變數中的單個字元

例如:

複製程式碼 程式碼如下:

<?php

$str='000';

$str{0}='1';

echo $str; //輸出為100

?>

這不難理解,與中括號[]的作用是一致的,有點類似Python中把字串看成物件的情況。所以,下面的語句功能相同:

複製程式碼 程式碼如下:

<?php

$str='000';

$str[0]='1';