php變數的型別是如何轉換的?常量如何定義?系統常量是如何定義的?

sfi799發表於2021-04-09

原創文章引自(www.ympfb.com/show-29-115-1.html

NULL型別

php變數的型別是如何轉換的?常量如何定義?系統常量
表示一個變數沒有值。NULL型別唯一可能的值就是NULL

被認為是NULL的情況:
 1
<?php
2
    var_dump( $a );    // 1.變數沒有宣告     返回 NULL
34
    $b;                
5
    var_dump( $b );    // 2.變數沒有被賦值   返回 NULL
6

7
    $c = 10;
8
    unset( $c );
9
    var_dump( $c );    // 3.變數被銷燬     返回 NULL
1011
    $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
56
    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代表   
910
?>


常量

定義賦值後, 存放的資料不能被修改、覆蓋,也不能被銷燬。

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 協議》,轉載必須註明作者和本文連結

相關文章