php中大括弧的用法和意義{}

來源:互聯網
上載者:User
在PHP中,大括弧“{}”可以起到如下作用:
  • 將多個獨立語句合并為一個複合陳述式,例如 if ... else ...中經常如此使用
  • 在變數間接引用中進行定界,避免歧義。例如 ${$my_var[8]}與${$my_var}[8]的區分
  • 用於指示字串變數中的單個字元(下標從0開始),例如
$my_str="1234";$my_str{1}='5';  //現在 $my_str 內容為 '1534'
此用法為PHP5之後的特性,用於消除使用中括弧引起的歧義。

如:
$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變數了~~


  1. //   The   following   is   okay   as   it's   inside   a   string.     Constants   are   not        
  2.   //   looked   for   within   strings   so   no   E_NOTICE   error   here        
  3.   print   "Hello   $arr[fruit]";             //   Hello   apple        
  4.          
  5.   //   With   one   exception,   braces   surrounding   arrays   within   strings        
  6.   //   allows   constants   to   be   looked   for        
  7.   print   "Hello   {$arr[fruit]}";         //   Hello   carrot        
  8.   print   "Hello   {$arr['fruit']}";     //   Hello   apple    
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 )好。

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

  1. 表示{}裡面的是一個變數 ,執行時按照變數來處理    
  2. 在字串中引用變數使用的特殊包括方式,這樣就可以不使用.運算子,從而減少代碼的輸入量了。 其實輸出那塊是等同於print  "hello   ".$arr['fruit'];

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.