日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php 不恒等,php运算符 == 怎么使用以及与 === 恒等的区别是什么?

發(fā)布時(shí)間:2023/12/2 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 不恒等,php运算符 == 怎么使用以及与 === 恒等的区别是什么? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

PHP編程語言中有許多運(yùn)算符來幫助我們處理相關(guān)的字符和數(shù)組,在某些情況下,PHP會(huì)把類數(shù)值數(shù)據(jù)(如含有數(shù)字的字符串等)轉(zhuǎn)換成數(shù)值處理,== 運(yùn)算符就是其中之一。在使用PHP運(yùn)算符==對兩個(gè)字符串進(jìn)行松散比較時(shí),PHP會(huì)把類數(shù)值的字符串轉(zhuǎn)換為數(shù)值進(jìn)行比較。<?php

var_dump('01' == 1);

?>

以上代碼輸出結(jié)果為:bool(true)

所以,在使用對字符串進(jìn)行比較時(shí),建議使用PHP運(yùn)算符==對字符串進(jìn)行嚴(yán)格的檢查,或使用strcmp()等函數(shù),從而避免可能產(chǎn)生的問題。

除此之外,常用的in_array()函數(shù)也存在弱類型的問題,見如下代碼:<?php

var_dump(in_array('01', array('1')));

?>

以上代碼輸出結(jié)果為:bool(true)

相信用過該函數(shù)進(jìn)行安全性檢查的PHP編程人員都知道這會(huì)產(chǎn)生怎么樣的安全問題了吧?幸好in_array()函數(shù)為我們提供了第三個(gè)參數(shù),把它設(shè)為 true 就可以打開in_array()函數(shù)的強(qiáng)制類型檢查機(jī)制,如下代碼所示:<?php

var_dump(in_array('01', array('1'), true));

?>

輸出結(jié)果為:bool(false)

由于PHP是一種弱類型的語言,也就是說數(shù)據(jù)類型這個(gè)概念在PHP中被弱化。因而如果在編程時(shí)過分忽略數(shù)據(jù)類型(也是大部份PHP程序員的通病),會(huì)產(chǎn)生一些問題,甚至導(dǎo)致安全漏洞。在PHP運(yùn)算符==的介紹最后,還是那句說得很煩很煩的話,對外來數(shù)據(jù)進(jìn)行嚴(yán)格檢查和過濾。

恒等計(jì)算符,和比較運(yùn)算符號“==”的區(qū)別是 “==”不會(huì)檢查條件式的表達(dá)式的類型,恒等計(jì)算符會(huì)同時(shí)檢查表達(dá)式的值與類型。

這主要和php是無類型語言有關(guān),比如 NULL,FALSE,array(),””,0,”0″這幾個(gè)值如果用==他們是相等的,但是你如果判斷出某個(gè)值真正的返回值呢,就可以用 ===

$a = 0;

$b = FALSE;

$a === FALSE 不成立,但 $b === FALSE成立,如果是==, $a == FALSE 和 $b == FALSE都成立

===運(yùn)算符還是很有用的,php有些內(nèi)置函數(shù)成功會(huì)返回某個(gè)值,失敗會(huì)返回false,假如成功了但返回的是””或者0之類的空值你怎么判斷成功或者失敗呢?這是就可以用 === ,它可以區(qū)分變量類型。

$a == $b 等于 TRUE,如果 $a 等于 $b。

$a === $b 全等 TRUE,如果 $a 等于 $b,并且它們的類型也相同。(PHP 4 引進(jìn))

$a != $b 不等 TRUE,如果 $a 不等于 $b。

$a <> $b 不等 TRUE,如果 $a 不等于 $b。

$a !== $b 非全等 TRUE,如果 $a 不等于 $b,或者它們的類型不同。(PHP 4 引進(jìn))

$a < $b 小與 TRUE,如果 $a 嚴(yán)格小于 $b。

$a > $b 大于 TRUE,如果 $a 嚴(yán)格 $b。

$a <= $b 小于等于 TRUE,如果 $a 小于或者等于 $b。

$a >= $b 大于等于 TRUE,如果 $a 大于或者等于 $b。

如果比較一個(gè)整數(shù)和字符串,則字符串會(huì)被轉(zhuǎn)換為整數(shù)。如果比較兩個(gè)數(shù)字字符串,則作為整數(shù)比較。此規(guī)則也適用于 switch語句。<?php

var_dump(0 == "a"); // 0 == 0 -> true

var_dump("1" == "01"); // 1 == 1 -> true

var_dump("1" == "1e0"); // 1 == 1 -> true

switch ("a") {

case 0:

echo "0";

break;

case "a": // never reached because "a" is already matched with 0

echo "a";

break;

}

?>

總結(jié)

以上是生活随笔為你收集整理的php 不恒等,php运算符 == 怎么使用以及与 === 恒等的区别是什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。