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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

PHP
富國滬深 2023-04-21 13:37:18
我正在處理以下代碼段。!== 0在第一個 if 條件中使用而即使第二個條件在不使用的情況下返回相同的結(jié)果有什么意義!== 0?我正在關(guān)注一些在線教程并注意到大多數(shù)開發(fā)人員都在使用,!== 0但我無意中注意到我也得到了相同的結(jié)果,至少在這個特定示例中沒有使用!== 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 回答

?
當年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

“===”和“!==”比較運算符斷言兩件事:

  1. 值相等,并且

  2. 這些值屬于同一類型

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

長答案如下:

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

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

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

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


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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