php if中存在賦值可能會存在的問題

2021-07-05 15:54:15 字數 954 閱讀 1666

<?php

if( $a=11 && $b=22 )//輸出:我被執行了

var_dump($a);//輸出bool(true)

var_dump($b);//輸出int(22)

if($a=0 && $b=22 )//未被執行

var_dump($a);//輸出bool(false)

var_dump($b);//輸出null

//解釋:第乙個變數都會變成boolean, 如果它的值不是0(false)任何其他的值都會被1取代, 而如果第乙個變數的值是0(false)他就不會去判斷第二個變數,直接跳過(返回false)。

if( $a=0 || $b=22 )//輸出:我被執行了

var_dump($a);//輸出:bool(true)

var_dump($b);//輸出:int(22)

if( $a=11 || $b=22 )//輸出:我被執行了

var_dump($a);//輸出:bool(true)

var_dump($b);//輸出:null 

// 解釋:第乙個變數都會變成boolean, 如果它的值不是0(false)任何其他的值都會被1取代, 而第乙個變數的值是1(真)他就不會去判斷第二個變數,直接跳過(返回真)。

if( $a=11)//輸出:我被執行了

var_dump($a);//輸出:int(11)

if( $a=0)//未輸出

var_dump($a);//輸出:int(0)

if( $a=」」)//未輸出

var_dump($a);//輸出:string(0) 「」

if( $a=」sss」)//輸出:我被執行了

var_dump($a);//輸出:string(3) 「sss」

//解釋:這樣的語句 相當於兩步 1.先執行賦值語句  $a=11  2.再做判斷 如果變數是0或者空則返回false。

?>

mysql資料庫中使用null可能會存在問題

not in 等負向條件查詢在有 null 值的情況下返回永遠為空結果,查詢容易出錯 create table table 2 id int 11 not null,user name varchar 20 not null create table table 3 id int 11 not nu...

7744問題(浮點數的運算可能會存在誤差)

方法一 使用函式sqrt 開平方 floor 返回整數部分判斷 7744,利用 0.5進行四捨五入以避免浮點數運算可能存在的誤差 int n double m for int i 1 i 10 i 函式floor x 返回x的整數部分,為了避免x在浮點數的運算過程中 面前開平凡 可能出現了誤差,改為...

小心發黑的開關插座!可能會存在這些隱患!

發黑的開關插座見過嗎?或者它就在你家某個牆角,你可能不以為意,但它確實可能成為火災的導火索!於網路 據統計,我yvhlabis國近 10 年來發生的火災中,約30 是由插座引起的,居各種失火原因之首。因此,一旦發現插座變黑,必須馬上更換,同時檢查電器是否已造成故障。於網路 到底是什麼導致開關插座變黑...