第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

PHP 和使用 strcmp 函數(shù)的正確方法

PHP 和使用 strcmp 函數(shù)的正確方法

PHP
富國滬深 2023-04-21 13:37:18
我正在處理以下代碼段。!== 0在第一個(gè) if 條件中使用而即使第二個(gè)條件在不使用的情況下返回相同的結(jié)果有什么意義!== 0?我正在關(guān)注一些在線教程并注意到大多數(shù)開發(fā)人員都在使用,!== 0但我無意中注意到我也得到了相同的結(jié)果,至少在這個(gè)特定示例中沒有使用!== 0<?php   $name1 = "Geeks"; $name2 = "geeks";   if (strcmp($name1, $name2) !== 0) {     echo 'Strings are not equal'; } else {     echo 'Strings are equal'; } if (strcmp($name1, $name2)) {     echo 'Strings are not equal'; } else {     echo 'Strings are equal'; } ?> 
查看完整描述

1 回答

?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

“===”和“!==”比較運(yùn)算符斷言兩件事:

  1. 值相等,并且

  2. 這些值屬于同一類型

對(duì)您的問題“將 !== 與 strcmp 函數(shù)一起使用有什么意義”的簡短回答只是“這是一種很好的做法”。這確實(shí)是具體關(guān)于 strcmp 的唯一原因,并且 != 在涉及該功能時(shí)會(huì)給您完全相同的結(jié)果。

長答案如下:

PHP 傳統(tǒng)上是一種松散類型的語言。也就是說,數(shù)據(jù)類型并不是那么重要,PHP 會(huì)自動(dòng)為您隱式轉(zhuǎn)換類型。默認(rèn)情況下它仍然這樣做(盡管近年來已經(jīng)添加了很多東西來改善這種情況)。例如,如果將字符串“1”添加到整數(shù) 1,PHP 會(huì)自動(dòng)將字符串轉(zhuǎn)換為整數(shù)并返回整數(shù)值 2。如果您嘗試這樣做,強(qiáng)類型語言將返回錯(cuò)誤。另一個(gè)例子是 PHP 會(huì)將 0 轉(zhuǎn)換為布爾值 false,并將任何其他非零值轉(zhuǎn)換為布爾值 true。

正是第二個(gè)示例導(dǎo)致某些 PHP 內(nèi)置函數(shù)出現(xiàn)問題。例如,strpos() 函數(shù)。如果您查看strpos 的文檔頁面,您會(huì)在“返回值”部分看到一個(gè)很大的“警告”,指出“此函數(shù)可能返回布爾值 FALSE,但也可能返回一個(gè)計(jì)算結(jié)果為 FALSE 的非布爾值”。出于這個(gè)原因,它建議您使用“===”運(yùn)算符來確保您獲得了您期望的準(zhǔn)確值和類型。所以“=== 0”表示在輸入的開頭找到了字符串,“=== false”表示沒有找到字符串。如果你只是使用“== false”你就不會(huì)

因此,開發(fā)人員養(yǎng)成了使用“===”和“!==”來測(cè)試相等性和類型的習(xí)慣。這是一個(gè)好習(xí)慣。

由于 strcmp 總是返回一個(gè)整數(shù),并且您總是將它與一個(gè)整數(shù)進(jìn)行比較,因此沒有隱式轉(zhuǎn)換,因此不需要比較類型和相等性。


查看完整回答
反對(duì) 回復(fù) 2023-04-21
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)