[英]php logical operator 'or' between different data types
<?php
$sample = (False or 436);
echo $sample;
?>
我嘗試使用此代碼來識別並了解操作符優先級對代碼的影響。 但是我對得到的答案感到困惑。
<?php
$sample = (False or 436);
echo $sample;
?>
給出答案為1
<?php
$sample = (True or 436);
echo $sample;
?>
也給1
<?php
$sample = False or 436;
echo $sample;
?>
什么也沒給。
如我所見,我旁邊放的是or
答案是1
PS我在http://sandbox.onlinephpfunctions.com/
這個在線編輯器上嘗試過它們。
我需要知道背后的實際概念。
其背后的原因是所謂的運算符優先級。 如果刪除括號,則賦值$sample = false
優先於or 436
函數。 結果為echo false
,不輸出任何內容。 因此,在大多數情況下,您應該使用||
運算符。
更多信息: http : //php.net/manual/en/language.operators.precedence.php
作為我得到的所有答案,我可以在發布的內容中找到所有答案。 我認為這可能會有所幫助。
<?php
$var1 = TRUE;
$var2 = FALSE;
$var3 = 123;
$x = (int)$var2 or $var3;
echo $x;// $x assigned to $var2 and type cast into int-display 0
$y = ($var2 or $var3);
echo $y;//operation inside the () returns true. so it prints 1
$n = ($var2 or $var2);
echo $n;//operation inside the () returns false.It concider as NULL. display nothing
echo (int)$n;//print numerical value for false-0
$z = $var2;
echo $z;//returns 0. It is considered as NULL. so display nothing
?>
這是我真正期望的確切答案。 謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.