web-dev-qa-db-ja.com

PHPのifステートメント1行

私はJavaScriptに似たものにしたいのですが

    var foo = true;
    foo && doSometing();

しかし、これはphpでは機能しないようです。

条件が満たされた場合にラベルにクラスを追加しようとしています。読みやすくするために、埋め込まれたphpを最小限に抑えたいと考えています。

これまでのところ:

 <?php $redText='redtext ';?>
 <label class="<?php if ($requestVars->_name=='')echo $redText;?>labellong">_name*</label>
 <input name="_name" value="<?php echo $requestVars->_name; ?>"/>

しかしそれでも、IDEは中括弧のないifステートメントがあると不平を言っています。

15
andrew

三項演算子を使用しますか?:

これを変える

<?php if ($requestVars->_name=='')echo $redText;?>

   <?php echo ($requestVars->_name=='')?$redText:'';?>

要するに

 // (Condition)?(thing's to do if condition true):(thing's to do if condition false);
31
sanjeev

Ternary operator logic Ternary operator logicは、「(condition)?(true return value):(false return value)」ステートメントを使用してif/else構造を短くするプロセスです。つまり

/* most basic usage */
$var = 5;
$var_is_greater_than_two = ($var > 2 ? true : false); // returns true

このようなもの?

($var > 2 ? echo "greater" : echo "smaller")
3
ceuben