原創文章引自(www.ympfb.com/show-29-115-1.html)
NULL型別
php變數的型別是如何轉換的?常量如何定義?系統常量
表示一個變數沒有值。NULL型別唯一可能的值就是NULL
被認為是NULL的情況:
1
<?php
2
var_dump( $a ); // 1.變數沒有宣告 返回 NULL
3
4
$b;
5
var_dump( $b ); // 2.變數沒有被賦值 返回 NULL
6
7
$c = 10;
8
unset( $c );
9
var_dump( $c ); // 3.變數被銷燬 返回 NULL
10
11
$d = null;
12
var_dump( $d ); // 4.變數被賦值為null 返回 NULL
13
?>
is_null(),用來判斷變數是否為空,如果是返回true,否則返回false。//你放進來的變數是null型別。
變數是否有定義 isset( 變數名 )變數是否有定義 isset( 變數名 )
1) 變數未宣告, 未賦值
2) 變數的值為 null
上面兩種情況返回 false , 其他情況返回 true
變數是否為空 empty( 變數名 )
為空返回 true 不為空返回 false
為空的情況有 0 ‘’ ‘0’ false 空陣列 null
變數的型別轉換
php屬性於弱型別語言, 變數的型別取決於它存放的資料, 資料型別改變了,變數的型別也就變了.
自動型別轉換
1
<?php
2
if ( 變數或表示式 ){
3
小括號中為true時, 執行這裡 // 小括號中的內容 會被自動轉換為布林型的 true 或 false
4
}
5
?>
大多數情況下,會被轉換為true, 轉換為 false 的情況有:大多數情況下,會被轉換為true, 轉換為 false 的情況有:
1) 布林值 false
2) 整數 0
3) 浮點數 0.0
4) 字串串 “” 和 “0”
5) 變數沒有賦值或未定義
6) 空陣列
7) NULL
其它情況為 true (真)
四則運算會把兩邊的內容自動轉化為數值
1
<?php
2
echo '123' + '2ab'; // 123 + 2 = 125
3
echo '' + 5; // 0 + 5 = 5
4
echo true + false; // 1 + 0 = 1
5
6
echo '12e2ab' + 77; // 1200 + 77 = 1277 (注意)
7
?>
變數的強制型別轉換
gettype( 變數名 ) 獲取變數的型別
settype( 變數名, 型別字串 ) 設定變數的新型別
$a = (int)$b;
把$b的資料讀取出來, 轉化為 int 型別, 賦值給 $a, 注意, $b 沒有改變.
可變變數
變數名前再加$. 變數名還是一個變數.
1
<?php
2
$a = 'b';
3
$b = 'xxoo';
4
echo $$a; // 相當於 echo $($a) => echo $b 所以輸出 xxoo 這就是可變變數
5
?>
引用變數
1
<?php
2
$a = 100;
3
$b = &$a; // $b 和 $a 將代表同一個容器, 所以改變$b的值, $a也就改變了
4
// & 稱為取地址符
5
6
unset($a);
7
echo $b; // 銷燬互為引用關係變數中的一個變數, 另一個仍然有效
8
// 銷燬 $a 只是不讓$a代表容器了, 容器本身還在, 還由$b代表
9
10
?>
常量
定義賦值後, 存放的資料不能被修改、覆蓋,也不能被銷燬。
define( ‘常量名’, 值);
常量可以參加運算.
常量名區分大小寫, 習慣上用大寫
1
<?php
2
echo xxoo; // 沒有單引號,也沒有雙引號, 系統會嘗試把它理解為一個常量
3
4
echo $arr[abc] // 方括號中沒有引號, 系統也會嘗試理解為常量
5
?>
defined('常量名') 判斷一個常量是否存在.
系統常量```php
1
<?php
2
echo xxoo; // 沒有單引號,也沒有雙引號, 系統會嘗試把它理解為一個常量
3
4
echo $arr[abc] // 方括號中沒有引號, 系統也會嘗試理解為常量
5
?>
defined('常量名') 判斷一個常量是否存在.
``````php
1
<?php
2
echo xxoo; // 沒有單引號,也沒有雙引號, 系統會嘗試把它理解為一個常量
3
4
echo $arr[abc] // 方括號中沒有引號, 系統也會嘗試理解為常量
5
?>
defined('常量名') 判斷一個常量是否存在.
```
PHP_VERSION php程式的版本
PHP_OS php解析器的作業系統
LINE 獲得當前的行號
FILE 檔案的完整路徑和檔名
DIR
檔案所在的目錄
本作品採用《CC 協議》,轉載必須註明作者和本文連結