2016-12-14 5 views
1

$ required varが設定されていて、bool trueまたはstring trueに等しい場合、必要な文字列を出力しようとしています。値が設定されているかどうかをチェックし、trueまたは 'true'を返します。

私が持っている:

次のセットでそう
isset($required) && $required == true ? 'required' : '' 

$required = true //required string set 
$required = 'true' //required string set 
$required = false //required string not set 

良い全てまで:

$required = 'false' //required string set 

どのように私は条件をテストし、両方の文字列を可能にすることができますし、ブールタイプ?

+3

'$必要はなく、厳密な比較を使用する== =真 'である。あなたはそれを体験しています。それはあなたが見ているものです。 'true ==" string "'はtrueですが、厳密な比較を使用する場合、型も同様に一致する必要があります(ブール値をブール値とする)。 – Qirel

+0

@Qirelは動作しません。私は '真の'文字列を渡すことができません。この文字列を渡すとtrueに評価されます。 – panthro

答えて

3

方法を...:

filter_var($required, FILTER_VALIDATE_BOOLEAN); 

はあなたを与えるだろう:ブール値と文字列を比較する必要が保存

$required = 'false'; 
filter_var($required, FILTER_VALIDATE_BOOLEAN); // false 

$required = false; 
filter_var($required, FILTER_VALIDATE_BOOLEAN); // false 

$required = 'true'; 
filter_var($required, FILTER_VALIDATE_BOOLEAN); // true 

$required = true; 
filter_var($required, FILTER_VALIDATE_BOOLEAN); // true 

を、そう:

ランダムdownvoter(HI RF)210

さらなる情報:filter_varFILTER_VALIDATE_BOOLEANを使用

は、入力に基づいて、以下が返されます。

TRUE for "1", "true", "on" and "yes" 
FALSE for "0", "false", "off" and "no" 
NULL for anything else 
+0

鮮やかな解決策、なぜそれがdownvotedされた得ることはありません。 – Qirel

+0

同じ@Qirel - なぜdownvote、私は私が "ファン"を持っている必要があります考えていない... – Stuart

+0

私はこれをdownvoteしていない。私はupvoteだろう – panthro

2

はこれを試してみてください:filter_varの使用に関する

(isset($required) && ($required === true || $required === 'true')) ? 'required' : ''; 
関連する問題