- 類型轉換
- 數學函數
- 常量定義:define() 與const 的使用差異
- 魔術常量應用:__LINE__ 等特殊常量
目錄
一、類型轉換
二、數學函數
1、pi() 函數
2、min() 和 max() 函數
3、abs() 函數
4、sqrt() 函數
5、round() 函數
6、隨機數
三、常量
1、創建 PHP 常量
2、const 關鍵字
3、const 與 define() 函數的區別
4、常量與變量的區別
四、魔術常量
一、類型轉換
PHP 在變量聲明時不需要定義類型。在這種情況下,變量的類型由存儲的值決定。也就是說,如果 string 賦值給 $var,然后 $var 的類型就是 string。之后將 int 值賦值給 $var,它將是 int 類型。有時可能希望變量具有特定的數據類型, 這就需要通過類型轉換來完成。
類型轉換通過在值前面的括號中寫入類型來將值轉換指定的類型。
- (string)?- 轉換為字符串類型。
- (int)?- 轉換為整數類型。
- (float)?- 轉換為浮點類型。
- (bool)?- 轉換為布爾類型。如果值為 0、NULL、false 或為空,則 (bool) 會將其轉換為 false,否則為 true。
- (array)?- 轉換為數組類型。轉換為數組時,大多數數據類型都會轉換為一個僅包含一個元素的索引數組。NULL 值會轉換為一個空的數組對象。對象會轉換為關聯數組,其中屬性名稱成為鍵,屬性值成為值。
- (object)?- 轉換為對象類型。轉換為對象時,大多數數據類型都會轉換為一個僅包含一個名為 "scalar" 的屬性和相應值的對象。NULL 值會轉換為一個空對象。索引數組會轉換為對象,其中索引號作為屬性名稱,值作為屬性值。關聯數組會轉換為對象,其中鍵作為屬性名稱,值作為屬性值。
- (unset)?- 轉換為 NULL 類型。
二、數學函數
PHP 有一套數學函數,可以對數字進行數學運算,這些數學函數只處理 int 和 float 類型范圍內的值。接下來我們一起來學習常用的數學函數。
1、pi() 函數
pi()?:返回 PI 的值(圓周率值)。
echo pi(); // 輸出 "3.1415926535898"
2、min() 和 max() 函數
min():用于查找一系列參數中的最小值。
max():用于查找一系列參數中的最大值。
echo min(-3, -2, -1, 0, 1, 2, 3); // 輸出 "-3"
echo max(-3, -2, -1, 0, 1, 2, 3); // 輸出 "3"
3、abs() 函數
abs()?:返回一個數的絕對值。
echo abs(-3); // 輸出 "3"
echo abs(3); // 輸出 "3"
4、sqrt() 函數
sqrt()?:返回一個數的平方根。
sqrt() :返回一個數的平方根。
5、round() 函數
round()?:將浮點數四舍五入為最接近的整數。
echo round(6.7); // 輸出 "7"
echo round(6.49); // 輸出 "6"
echo round(-7.1); // 輸出 "-7"
echo round(-7.6); // 輸出 "-8"
6、隨機數
rand(min, max)?:返回隨機整數。
參數 | 描述 |
min,max | 可選。規定隨機數產生的范圍。 |
如果沒有提供可選參數?min?和?max,rand()?返回 0 到 RAND_MAX 之間的偽隨機整數。例如,想要 10 到 100(包括 10 和 100)之間的隨機數,用?rand(10, 100)。?
echo rand(); // 輸出 "0 到 RAND_MAX 之間的偽隨機整數"
echo rand(10, 100); // 輸出 "10 到 100 之間的隨機整數"
三、常量
常量類似于變量,但一旦定義,它們就不能被更改或取消定義。
常量是一個簡單值的標識符(名稱)。在腳本執行期間,該值無法更改。有效的常量名以字母或下劃線開頭。與變量不同,常量在整個腳本中是自動全局的。
1、創建 PHP 常量
define(name, value, case-insensitive)?函數用于常量創建。
參數:
- name: 指定常量的名稱
- value: 指定常量的值
- case-insensitive: 指定常量名稱是否不區分大小寫。如果設置為 true,則該常量不區分大小寫。默認是 false。
注意:PHP 7.3.0 起,廢棄定義不區分大小寫的常量。自 PHP 8.0.0 開始,只接受 false 值,傳遞 true 將產生警告。
創建一個區分大小寫的常量名稱:
define("greeting", "Hello World!");
echo greeting;
2、const 關鍵字
也可以使用?const?關鍵字創建常量。
const PI = 3.14;
echo PI;
3、const 與 define() 函數的區別
- const?始終區分大小寫。
- define()?具有不區分大小寫的選項。
- const?不能在另一個塊作用域內創建,例如在函數內部或 if 語句內部。
- define()?可以在另一個塊作用域內創建。
4、常量與變量的區別
- 常量前面沒有美元符號($)。
- 常量可以不用理會變量的作用域而在任何地方定義和訪問。
- 常量一旦定義就不能被重新定義或者取消定義。
- 常量只能計算標量值或數組。
四、魔術常量
有九個魔術常量它們的值隨著它們在代碼中的位置改變而改變。例如 __LINE__ 的值就依賴于它在腳本中所處的行來決定。這些特殊的常量不區分大小寫,除了 ClassName::class 常量外,這些魔術常量在開頭和結尾都帶有雙下劃線。