问下这种PHP写法什么意思,关于字符串的

风钢我 2015-07-22 10:58:18
if(!empty($attribute))
{
foreach($attribute as $v)
{
$v and $str.=",{$v}";
}
}
$str and $str.=",";



$v and $str.=",{$v}";和$str and $str.=","; 这个怎么理解呢。
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-07-23
  • 打赏
  • 举报
回复
对个球!
$attribute = array(1,2,3,0,0,5,'', 'A');
$str = '';
if(!empty($attribute)) {
  foreach($attribute as $v) {
    $v and $str.=",{$v}";
  }
}
$str and $str.=",";

echo $str;
,1,2,3,5,A,
$attribute = array(1,2,3,0,0,5,'', 'A');
$str = '';
if(!empty($attribute)) {
  foreach($attribute as $v) {
    $str.=",{$v}";
  }
}
$str.=",";

echo $str;
,1,2,3,0,0,5,,A, 能一样吗? 这个是三元运算的变种
y75674952 2015-07-23
  • 打赏
  • 举报
回复
嗯. 按照1L说的 对的 不过 按照写法来说. if(!empty($attribute)) 有时候$attribute没定义 这样写会报警告的 最好的方式isset($attribute) && !empty($attribute) 写代码要严谨.
宁静志远 2015-07-23
  • 打赏
  • 举报
回复
按照php运算符的优先级,.=大于and,这里的and部分没什么意义,得到的结果和下面的代码应该一样

 if(!empty($attribute))
 {
foreach($attribute as $v)
{
 $str.=",{$v}";
}
 }
 $str.=",";
haogeqiu_com 2015-07-23
  • 打赏
  • 举报
回复
and操作符,当前面的值为false 的时候,and后面的代码是不执行的
dowebs 2015-07-23
  • 打赏
  • 举报
回复

if(!empty($attribute)){
	foreach($attribute as $v){
		$v and $str.=",{$v}";
	}
 }
$str and $str.=",";
改在这样你就理解了

if(!empty($attribute)){
	foreach($attribute as $v){
		if($v){
			$str.=",".$v;
		}
	}
}
if($str){
	$str.=",";
}
$str and $str.=","; 它意思是如果$str不为空的时候,那么处理后面的语句,这和下面的给空值赋值有异曲同工之妙,and(&&)这种情况一个是有值的时候处理,or(||)一个是空值的时候处理。

$str || $str=“缺省值”;

21,892

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧