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 )好。
一、不管什么程序,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};
- 将多个独立语句合并为一个复合语句,例如 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变量了~~
- // The following is okay as it"s inside a string. Constants are not
- // looked for within strings so no E_NOTICE error here
- print "Hello $arr[fruit]"; // Hello apple
- // With one exception, braces surrounding arrays within strings
- // allows constants to be looked for
- print "Hello {$arr[fruit]}"; // Hello carrot
- print "Hello {$arr["fruit"]}"; // Hello apple
例如:
$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"];
一、不管什么程序,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};
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。