溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP弱類型語言中類型判斷操作的示例分析

發(fā)布時間:2021-07-15 11:10:48 來源:億速云 閱讀:91 作者:小新 欄目:開發(fā)技術

這篇文章主要介紹PHP弱類型語言中類型判斷操作的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

具體如下:

1、php一個數(shù)字和一個字符串進行比較或者進行運算時,PHP會把字符串轉換成數(shù)字再進行比較。PHP轉換的規(guī)則的是:若字符串以數(shù)字開頭,則取開頭數(shù)字作為轉換結果,若無則輸出0。

例如:123abc轉換后應該是123,而abc則為0,0==0這當然是成立的.具體可以參考官方手冊:如果比較一個整數(shù)和字符串,則字符串會被轉換為整數(shù)

$a = ($b=4)+5;
echo $a;  //9
echo '<p>';
var_dump(1=='1a');  //true
echo '<p>';
var_dump(1=='2a');  //false
echo '<p>';
var_dump(1=='a1');  //false
echo '<p>';
var_dump("1"=='1a');  //false
echo '<p>';
var_dump('51a'+6);  //57
echo '<p>';
var_dump('a51'+6);  //6

2、在PHP中,== 會先進行類型轉換,再進行對比,而===會先比較類型,如果類型不同直接返回不相等,參考如下示例

$a = null;
$b = '';
$c = 0;
echo ($a == $b) ? 1 : 0;  // 輸出1
echo ($a === $b) ? 1 : 0;  // 輸出0
echo ($a == $c) ? 1 : 0;  // 輸出1
echo ($a === $c) ? 1 : 0;  // 輸出0
echo ($b == $c) ? 1 : 0;  // 輸出1
echo ($b === $c) ? 1 : 0;  // 輸出0

3、php中的empty和isset函數(shù)

1)變量為:0,"0",null,'',false,array()時,使用empty函數(shù),返回的都為true

2)變量未定義或者為null時,isset函數(shù)返回的為false,其他都未true

$a = null;
$b = '';
$c = 0;
$d = "0";
$e = false;
$f = array();
var_dump(empty($a));  //true
echo '<p>';
var_dump(empty($b));  //true
echo '<p>';
var_dump(empty($c));  //true
echo '<p>';
var_dump(empty($d));  //true
echo '<p>';
var_dump(empty($e));  //true
echo '<p>';
var_dump(empty($f));  //true
echo '<p>';
var_dump(isset($a));  //false
echo '<p>';
var_dump(isset($b));  //true
echo '<p>';
var_dump(isset($c));  //true
echo '<p>';
var_dump(isset($d));  //true
echo '<p>';
var_dump(isset($e));  //true
echo '<p>';
var_dump(isset($f));  //true
echo '<p>';
var_dump(isset($g));  //false

4、使用strpos之類的函數(shù)要用恒等于來判斷

$sms = "abc";
if(strpos($sms,'a') != false ){
  echo 1;
}else{
  echo 2;
}

這種情況,很明顯是判斷abc字符串中,是否包含a,預期結果應該是要輸出1的,實際結果輸出為2。這是因為strpos函數(shù)匹配不到目標字符串時,返回false,匹配到了目標字符串時,會返回目標字符串,在搜索字符串中的索引位置,此處返回了0。

$sms = "abc";
if(strpos($sms,'a') !== false ){
  echo 1;
}else{
  echo 2;
}

改成恒等于,才是正確的。

5、換行需要雙引號

$time = date('Y-m-d H:i:s').'\r\n';
file_put_contents('filename.txt', $time , FILE_APPEND);

如果這樣寫,打開文件是這樣的2016-09-02 08:04:04\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:22

正確的寫法是\r\n,使用雙引號包起來

以上是“PHP弱類型語言中類型判斷操作的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

php
AI