PHP型別轉詳解

2021-06-23 07:48:53 字數 842 閱讀 3842

因為php是弱型別語言,所以在型別轉換時會進行隱性轉換,從而產生一些***。

1.在進行比較邏輯運算時的轉換規則:

一、如果比較乙個整數和字串,則字串會被轉換為整數。

字串轉換為整數的規則如下:

當乙個字串被當作數字來求值時,根據以下規則來決定結果的型別和值。

如果包括「.」,「e」或「e」其中任何乙個字元的話,字串被當作 float 來求值。否則就被當作整數。

該值由字串最前面的部分決定。如果字串以合法的數字字元開始到非數字字元結束,就用該數字作為其值,否則其值為 0(零)。合法數字資料由可選的正負號開始,後面跟著乙個或多個數字(可選地包括十進位制分數),後面跟著可選的指數。指數是乙個「e」或者「e」後面跟著乙個或多個數字。

**如下:

<?php

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

var_dump(1 == "01"); // 1 == 1 -> true;」01「轉換為十進位制的1

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

switch ("a") //因為"a"轉換數字時為0,所以輸出"0";

?>

二、如果比較的兩個字串中只有數字和非列印字元,則會忽略這些非列印字元後再轉換為數字後再進行比較:

<?php

echo " \v\f \r 1234" + 1; // 1235

var_export ("\v\f \r 1234" == "1234"); // true

?>

PHP之Trait詳解 轉

php從以前到現在一直都是單繼承的語言,無法同時從兩個基類中繼承屬性和方法,為了解決這個問題,php出了trait這個特性 如下 例項 trait dog class animal class cat extends animal cat new cat cat drive echo cat eat...

PHP中str replace函式的詳解 轉

在實際的程式開發中,執行字串替換操作是一件非常經常的事,對str replace函式的實用也會非常頻繁。這段時間在看 php和mysql web開發 一書看到str replace講解,一段小提示寫到 可以為str replace的三個都使用陣列傳入,但講解比較簡單,於是決定自己的試驗一下該函式在各...

c 引用型別與值型別的區別詳解 轉)

本篇文章是對c 中引用型別與值型別的區別進行了詳細的分析介紹,需要的朋友參考下 解析 clr支援兩種型別 值型別和引用型別。用jeffrey richter clr via c 作者 的話來說,不理解引用型別和值型別區別的程式設計師將會把 引入詭異的陷阱和諸多效能問題 這就要求我們正確理解和使用值型...