重複の可能性:
PHPのifステートメントについて
これは簡単な質問です。しかし、ここでは、条件が1つの変数のみで機能するかどうかを知る必要があります。
$category='';
if ($category) {
}
If条件で実際に何をチェックインするかわかりますか?条件には変数が1つだけあります。
チェック変数がTRUEまたはFALSEですか?
重複の可能性:
PHPのifステートメントについて
これは簡単な質問です。しかし、ここでは、条件が1つの変数のみで機能するかどうかを知る必要があります。
$category='';
if ($category) {
}
If条件で実際に何をチェックインするかわかりますか?条件には変数が1つだけあります。
チェック変数がTRUEまたはFALSEですか?
PHPは弱い型の言語です。条件で何が評価されるかを理解するには、ブール値の変換規則をif
参照してください。
マニュアルからの引用:
ブール値に変換する場合、次の値が考慮され
FALSE
ます。
- ブール値
FALSE
自体- 整数
0
(ゼロ)- フロート
0.0
(ゼロ)- 空の文字列、および文字列
"0"
- 要素がゼロの配列
- メンバー変数がゼロのオブジェクト(PHP 4のみ)
- 特殊なタイプ
NULL
(未設定の変数を含む)SimpleXML
空のタグから作成されたオブジェクト
したがって、あなたの状態は、として評価されFALSE
ます$category == ''
。(bool) '' === FALSE
$category = '';
if ($category) {
echo 'category';
} else {
echo 'no category';
}
//出力:カテゴリなし
$category = TRUE;
if ($category) {
echo 'category';
} else {
echo 'no category';
}
//出力:category
$category = '';
if (!empty($category)) {
echo 'category';
} else {
echo 'no category';
}
//出力:カテゴリなし
$category = 0;
if (!empty($category)) {
echo 'category';
} else {
echo 'no category';
}
//出力:カテゴリなし
$category = 0;
if (isset($category)) {
echo 'category';
} else {
echo 'no category';
}
//出力:category
これはチェックしますTRUE
if ($category) {
}
この場合、空の文字列はブール値にキャストされますfalse
。を参照してくださいmanual on Booleans
。
これは、変数がに評価されるかどうかをチェックします。これはtrue
、次と同等です。
if( (bool)$category === true) )
はいTRUEまたはFALSEをチェックしています。式がTRUEと評価された場合、PHPはステートメントを実行し、FALSEと評価された場合、それを無視します。
if($ category){
}
$categoryに値があるかどうかを確認するだけです。$categoryに値を指定しませんでした。この場合、FALSEになります。
評価されたステートメントがtrueの場合は常に、if条件のブロックがアクティブになります。
PHPの空の文字列はfalseと評価されるため、これはアクティブ化されません。たとえば、次のように、期待する内容を指定することで、より具体的にすることができます。
$category = '';
if (empty($category)) {
}
...空の場合はいつでもこれがアクティブになると予想される場合。それは本当にあなたが何をしようとしているのかに依存しますが、このように私は条件が決して満たされないと思います。