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

WBOY
Release: 2016-06-23 13:29:57
Original
859 people have browsed it

 if(!empty($attribute))
 {
foreach($attribute as $v)
{
$v and $str.=",{$v}";
}
 }
$str and $str.=",";



$v and $str.=",{$v}";和$str and $str.=","; 这个怎么理解呢。


回复讨论(解决方案)

按照php运算符的优先级,.=大于and,这里的and部分没什么意义,得到的结果和下面的代码应该一样

 if(!empty($attribute)) {foreach($attribute as $v){ $str.=",{$v}";} } $str.=",";
Copy after login

嗯. 按照1L说的 对的
不过 按照写法来说.
if(!empty($attribute)) 有时候$attribute没定义 这样写会报警告的
最好的方式isset($attribute) && !empty($attribute)

写代码要严谨.

对个球!

$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;
Copy after login
,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;
Copy after login
,1,2,3,0,0,5,,A,

能一样吗?

这个是三元运算的变种

if(!empty($attribute)){	foreach($attribute as $v){		$v and $str.=",{$v}";	} }$str and $str.=",";
Copy after login

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

$str and $str.=","; 它意思是如果$str不为空的时候,那么处理后面的语句,这和下面的给空值赋值有异曲同工之妙,and(&&)这种情况一个是有值的时候处理,or(||)一个是空值的时候处理。
$str || $str=“缺省值”;
Copy after login

and操作符,当前面的值为false 的时候,and后面的代码是不执行的

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template