自學PHP筆記(二)PHP資料型別

避涼閒庭發表於2021-04-06

本文轉發來自:blog.csdn.net/KH_FC/article/detail...
PHP資料型別可支援以下8種型別:

型別 說明
string 字串
boolean 布林值
integer 整型
float 浮點型
array 陣列
object 物件
resource 資源
NULL NULL

基本型別也就是最基礎的資料型別,用來表示比較簡單、直接性的資料,基本型別有以下幾個資料型別:
|型別|說明|
|-|-|
|boolean(布林值)|其值只有兩個,一個是true,一個是false。多數用來判斷事物的真假|
|string(字串)|其值包含計算機所能夠顯示的所有字元的集合,多數用來做說明性的字元|
|integer(整型)|只包含整數,包含正整數和負整數|
|float(浮點型)|包含整數和小數|

1.1 boolean(布林值)

布林值由truefalse這兩個值,所以是PHP種最簡單的一種資料型別,也是使用最多的一個資料型別,而且布林值的兩個值可以直接使用,不區分大小寫,在設定變數時可以直接將布林值中的兩個值進行賦值就可以,通常是配合流程控制進行使用的。
示例1】常規設定變數為布林值

<?php
    $a = true;    \\設定變數 a 的值為真
    $b = false;    \\設定變數 b 的值為假
?>

示例2】與流程控制語句配合使用,判斷事物真假

<?php 
    $a = true;
    $b = false;
    if ($a == $b) {
        echo "值相等";    #結果為真輸出
    }else{
        echo "值不相等";    #結果為假輸出
    }
?>

輸出結果為:值不相等
示例3】使用運算子返回布林值

<?php
    $name = "張三";
    if ($name == "張三"){
        echo "他的名字是$name";    #如果判斷運算結果為真則輸出
    }
?>

輸出結果為:他的名字是張三
示例4】常用語句

<?php
    if ($a = true ){
        var_dump($a);
    }
?>

輸出結果為:bool(true),上面出現的 var_dump()是用來列印輸出結果並帶上資料型別
上面那種判斷變數真假的方式可直接寫成下面簡單的方法:

<?php
    if ($a) {
        var_dump($a);
    }
?>

注意】上面$a變數我的賦值沒有寫,不給變數複製,變數預設為NULL

1.2 整型

整型數值只包含整數,其中整型也可以使用八進位制、十六進位制、二進位制表上,負數時前面可加可選符號-+
示例1】八進位制的整數,在表示數字前需要在數字前面加0

<?php
    $a = 0456;
    var_dump($a);
?>

輸出結果為:int(302),八進位制456轉化為十進位制是302
示例2】十六進位制的整數,在表示數字前需要在數字前面加0x

<?php
    $a = 0x456;
    var_dump($a);
?>

輸出結果為:int(1110),十六進位制456轉化為十進位制是1110
示例3】二進位制的整數,在表示數字前需要在數字前加0b

<?php
    $a = 0b1101;
    var_dump($a);
?>

輸出結果為:int(13),二進位制數1101轉換為十進位制是13
示例4】列印負數,只需正數前面加-即可

<?php
    $a = -100;
    var_dump($a);
?>

輸出結果不變,顯示int(-100)

番外】整數一般最大值是二十億,也就是32位字元,64位平臺最大值是9E18,檢視支援的最大值和最小值可以採用PHP_INT_MAXPHP_INT_MIN進行檢視
示例1】檢視支援最大的整數

<?php
    var_dump(PHP_INT_MAX);
?>

我這輸出結果是int(9223372036854775807),你們自己算算吧是多少
示例2】檢視支援最小的整數,這個只有PHP7.0版本之後支援喲

<?php
    var_dump(PHP_INT_MIN);
?>

這個最小整數的輸出值就不用我說了吧,算了給你們看看結果吧int(-9223372036854775808)
注意】在輸出八進位制時,如果出現超過8的數值,PHP7.0版本之前會自動忽略,但是7.0之後會直接報錯哦
示例

<?php
    $a = 01239;
    var_dump($a);
?>

報錯資訊如下:
在這裡插入圖片描述
注意】如果給出的整數值超出了整數範圍,會被解釋為浮點數,同樣如果運算結果超出了整數範圍,也會解釋為浮點數喲!
示例】運算結果超出整數範圍

<?PHP
    $num1 = 45678901111;
    $num2 = 89099899111;
    var_dump($num1 * $num2);
?>

輸出結果為:float(4.0699854804914E+21)

1.3 浮點型

浮點型整數也叫實數,表示方式可以採用正常格式和科學技術法格式進行
示例1】正常格式

<?php
    $a = 1.234;
    var_dump($a);
?>

輸出結果為:float(1.234)
示例2】科學技術格式

<?php
    $a = 1.2e3;
    $b = 8E - 10;
    var_dump($a);
    var_dump($b);
?>

輸出結果為:float(1200) float(8.0E-10)

1.4 字串

字串就是由一系列的字元組成,一個字元就是一個位元組,通過單引號、雙引號、Heredoc語法結構和Nowdoc語法結構定義字串。

  1. 單引號
    採用單引號定義字串就是使用單引號把字元包圍起來,如果想要輸出單引號需要在單引號新增轉義符\,如果是在結尾想輸出反斜槓就需要在字元前新增轉義符\\,如果在其他字元前面新增轉義符\或者\\會直接輸出轉義符。
    示例1】正常輸出單行字串
    <?php
    $a = '我是一個字串';
    var_dump($a);
    ?>
    輸出結果為:string(21) "我是一個字串"
    示例2】正常輸出多行字串
    <?php
    $a = '我是多行
    字串';
    var_dump($a);
    ?>
    輸出結果為:tring(23) "我是多行 字串"
    示例3】在字串中顯示單引號
    <?php
    $a = 'I like \'PHP\'';
    var_dump($a);
    ?>
    輸出結果為:string(12) "I like 'PHP'"
    示例4】在字串中輸出反斜槓,多用於檔案路徑
    <?php
    $a = 'D:\\php\index.php';
    var_dump($a);
    ?>
    輸出結果為:string(16) "D:\php\index.php"
    注意】在使用單引號進行定義字元時,如果字元中含有變數,變數將不會被解釋,但是雙引號定義字串時變數可以被解釋的
    示例】在字串中引用變數
    <?php
    $a = '張三';
    $b = '我叫$a';
    $c = "我叫$a";
    var_dump($b);
    var_dump($c);
    ?>
    輸出結果為:$b的返回結果為string(8) "我叫$a"$c的返回結果為string(12) "我叫張三"
  2. 雙引號
    採用雙引號定義字串,將要定義的字元型採用"", 使用雙引號定義字串時,如果字串中存在變數則變數將會被解釋,不會顯示變數名,PHP將對這些特殊字串進行解析,這些字串都要通過轉義符來顯示。
    轉義符列表:
    轉義字元 意義 ASCLL碼值(十進位制)
    \a 響鈴(BEL) 007
    \b 退格(BS),將當前位置移到前一列 008
    \f 換頁(FF),將當前位置移到下頁開頭 012
    \n 換行(LF),將當前位置移到下一行開頭 010
    \r 回車(CR),將當前位置移動到本行開頭 013
    \t 水平製表(HT)(跳到下一個TAB位置) 009
    \v 垂直製表(TV) 011
    \\ 代表一個反斜槓字元”\“ 092
    \‘ 代表一個單引號(撇號)字元 039
    \“ 代表一個雙引號字元 034
    \? 代表一個問好 063
    \0 空字元(NULL:) 000
    \ddd 1到3位八進位制數所代表的任意字元 三位八進位制
    \xhh 1到2位十六進位制所代表的任意字元 二位十六進位制

注意】要注意\/,此處時不可替換的
示例1】雙引號定義字串時輸出$符號

<?php
    echo "\$";
?>

示例2】雙引號定義字串時輸出雙引號

<?php
    echo " My Name is \"李明\"";
?>

輸出結果為:My Name is "李明"

  1. Heredoc語法結構
    採用Heredoc結構<<<定義字串,在使用提示符定義字串時,要在提示符後面定義一個識別符號,然後定義新的一行,新行中為你要顯示的字串,最後要以識別符號進行結尾,識別符號定義必須遵循PHP規則,只能包含大小寫、數字和下劃線,但是不能將下劃線作為開頭使用
    示例
    <?php
    $str = <<<test
    My name is "zhangsan"
    加入CSDN已經一週年了
    test;
    ?>
    輸出結果為:My name is "zhangsan" 加入CSDN已經一週年了
    注意】在使用Heredoc語法結構定義字串時,字串中如果存在變數,那變數將會被解釋
  2. Nowdoc語法結構
    採用Nowdoc語法結構定義字串類似於採用Heredoc定義字串的方式,只不過時在定義識別符號時需要使用單引號將識別符號進行包圍,這種方法無法解釋變數,在字串中變數相當於字元
    示例
    <?php
    $name = "張三";
    $str = <<<'test'
    My name is $name
    My name is 張三
    test;
    echo $str;
    ?>
    輸出結果為:My name is $name My name is 張三
    型別 說明
    array(陣列) 一組有序資料組合
    object(物件) 物件是類的例項,使用new進行建立

2.1 陣列

陣列也就是我們常說的鍵值對的,每個陣列都是由索引(鍵名)和值兩部分組成,陣列的索引部分可以使用字串或者是數字表示,值可以是任意資料型別
例項1】採用函式建立陣列

<?php
$array = array(
    "name" => "張三",
    "age"  => "11",
);
var_dump($array);
?>

輸出結果為:array(2) { ["name"]=> string(6) "張三" ["age"]=> string(3) "11" }
例項2】直接賦值的方式建立陣列

<?php
$array = [
    "name" => "張三",
    "age"  => "11",
];
var_dump($array);
?>

輸出結果為:array(2) { ["name"]=> string(6) "張三" ["age"]=> string(3) "11" }
例項3】建立只有值得陣列

<?php
$array = array("張三","李四","王五");
var_dump($array);
?>

輸出結果為:array(3) { [0]=> string(6) "張三" [1]=> string(6) "李四" [2]=> string(6) "王五" }
提示】不設定索引得話,陣列會自動新增一個索引,這個索引是由數字組成得,第一個從零開始
例項4】讀取陣列時,可以使用索引名用方括號包圍得方式進行讀取

<?php
$array = array(
    "name" => "張三",
    "age"  => "11",
);
var_dump($array['name']);
?>

輸出結果為:string(6) "張三"
當然也可以用陣列得索引進行賦值得例如:

<?php
$array = array(
    "name" => "張三",
    "age"  => "11",
);
$array['name'] = "李四";
var_dump($array);
?>

輸出結果為:array(2) { ["name"]=> string(6) "李四" ["age"]=> string(2) "11" }

2.2 物件

物件是物件導向程式設計得基礎,在PHP中使用new進行例項化,也就是建立物件
例項】建立物件

<?php
class test{
    function fu(){
        echo "test";
    }
}
$test = new test;
$test->fu();
?>

輸出結果為:test

特殊得資料型別包含資源和空值兩種
|型別|說明|
|-|-|
|resource(資源)|這個也是就指的外部資源,如上傳的檔案等|
|NULL(空值)|指的是當沒有賦值變數時則為空|

3.1 資源

資源資料型別變數儲存有開啟檔案、資料庫連線、圖形畫布區域等的特殊控制程式碼,不建議將其他資料型別轉換為資源型別,多數使用在檔案上傳,下載,資料庫等場景
資源資料型別自動開啟資源回收機制,隨時釋放不再使用的資源,以免程式佔用伺服器的大量資源,無需手動釋放
後續為大家記錄資源的使用方法吧。

3.2 NULL

NULL即空值,也是就是說變數並沒有進行賦值,其值時一個比較特殊的值為null,該值不區分大小寫,變數為空值時會存在設定為空、變數沒有被賦值和使用unset()函式處理過的變數
示例1】設定變數值為空

<?php
$test = null;
var_dump($test);
?>

輸出結果為:NULL
示例2】在不設定變數時輸出變數值

<?php
var_dump($a);
?>

輸出結果為:NULL
提示】使用unset()函式將會摧毀變數,使用is_null()函式可以判斷變數是否為空
例項3】判斷變數是否為空

<?php
$a = "張三";
if (is_null($a)){
    echo "變數為空";
}else{
    echo "變數不為空";
}
?>

輸出結果為:變數不為空

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章