文字列について、PHP でのこの書き方が何を意味するのか聞いてもいいですか?

WBOY
リリース: 2016-06-23 13:29:57
オリジナル
858 人が閲覧しました

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



$v と $str.=",{$v}"; および $str と $str.=",";


ディスカッションへの返信(解決策)

PHP 演算子の優先順位に従って、.= は and の部分は意味がありません。結果は以下のコードと同じになるはずです

そうですね。1L によると、その通りです

しかし、書き方によると
if(!empty($attribute)) このように書くと警告が報告されることがあります
isset($attribute) && !empty($attribute)

コードを記述するときは厳密に行ってください

そうです!
 if(!empty($attribute)) {foreach($attribute as $v){ $str.=",{$v}";} } $str.=",";
ログイン後にコピー
,1,2,3,5,A,


$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,0,0,5,,A,

同じでいいですか?

これは三項演算の変形です

$attribute = array(1,2,3,0,0,5,'', 'A');$str = '';if(!empty($attribute)) {  foreach($attribute as $v) {    $str.=",{$v}";  }}$str.=",";echo $str;
ログイン後にコピー

理解できるように変更してください

if(!empty($attribute)){	foreach($attribute as $v){		$v and $str.=",{$v}";	} }$str and $str.=",";
ログイン後にコピー

$str と $str.=","; これは、$str が空でない場合に次のステートメントを処理することを意味します。 and(&&)の場合は値がある場合に処理され、or(||)の場合はNULL値の場合に処理されます。
if(!empty($attribute)){	foreach($attribute as $v){		if($v){			$str.=",".$v;		}	}}if($str){	$str.=",";}
ログイン後にコピー


and 演算子、前の値が false の場合、その後のコードは実行されません

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート