私は次のようにそれらをテスト奇妙な結果を得たVARS $a, $b, $c
空()分離はどのように機能しますか?
if (empty($a . $b . $c)) {echo 'empty.dot';}
if (empty($a && $b && $c)) {echo 'empty';}
if (!empty($a . $b . $c)) {echo 'filled.dot';}
if (!empty($a && $b && $c)) {echo 'filled';}
でこれらif statements
empty()
と機能を持っている:
case[1]:
$a = '1';
$b = '1';
$c = '1';
result:
fillted.dot, filled
case[2]:
$a = '1';
$b = '';
$c = '1';
result:
empty, fillted.dot
case[3]:
$a = '';
$b = '';
$c = '';
result:
empty.dot, empty
何私は理解していないこと
なぜですcase[2]
私は両方を持っていますempty($a && $b && $c)
と!empty($a . $b . $c)
= TRUE
'isset()'のみが 'empty()'ではなく、複数で動作します。 –
@FunkFortyNinerしかし、なぜそれは 'case [1]、[3]'に有効な結果をもたらしますか? – Matheo
'empty 'の中の式が何を評価するかによって決まります。ドットは「111」、「11」、または「 '」のいずれかに連なっています。最後のものだけが空とみなされます。論理 '&& 'を使うと、真、偽、偽と評価されます。これらの行に '$ d = $ a && $ b && $c; var_dump($ d);'と '$ e = $ aを追加すると、 $ b。 $ c; var_dump($ e); 'ifsの上に、私が意味するものが見えます。 – Jeff