php 資料型別

2022-08-12 05:51:13 字數 4426 閱讀 2924

標量型別

: int, float, string, bool

復合型別: array, object

特殊型別: null, resouce

整數型別int,

integer

十進位制寫法:123:

$n1 = 123;

八進位制寫法: 0123

$n2 = 0123;

十六進製制寫法: 0x123

$n3 = 0x123;

有兩種寫法:

$v1 = 1.234;    //

帶小數點,,就是浮點型別

$v2 = 1.234e3;//

含義是:1.234乘以10的3次方,即1234,帶e的形式就是浮點數

$v3 = 1234e3;//

結果值是1234000,但也是乙個浮點數。

浮點數不應

直接進行大小比較

因為浮點數在系統內部(cpu級別),很可能都是不精確表達。

要想進行比較,我們只能考慮自己應用中的精度要求的基礎上,將其轉換為整數進行比較。

1.6678777   1667.8777

通常的做法是:乘以10的精度位數數次方,比如精度要求

3位有效數字,則乘以103

次方

$v1 = 8.1/3;

echo ("php中,8.1/3結果為:" .$v1

當整數運算的結果超出整數的範圍後,會自動轉換為浮點數。

整數的範圍,在32位系統下,大約正負

20多億

js中,雖然有

2種字串表達形式,但也應該理解為是一種字串:

var  str1 = 『單引號字串』

var str2 = 「雙引號字串」;

但在php中,單引號和雙引號字串,是有不同細節含義的字串。

php中,有

4種字串形式:

1、單引號字串:

$s1 = "php34.com";

//單引號字串:

//可以識別(需要使用)的轉義符有: \\ \'

//轉義符:就是用來表達 一直特殊符號的字元形式

$str = 'ad\nc"d\'efg:$s1';

echo "$str

"

結果:ab\nc"d'efg:$s1

2、雙引號字串:

//雙引號字串:

//可以識別(需要使用)的轉義符有: \\ \" \n \r \t \$

//雙引號字串

中,可以自動識別變數(以$開頭的連線字元)

$str2 = 'ad\nc'd\",\101,\x41,efg:$s1";//自動識別變數$s1

echo "$str2

"

結果:ab c' d",a,a,efg:php.com

3、nowdoc(單引號)定界符字串:

//nowdoc(單引號)定界符字串

//說明:abcd是乙個自定義的識別符號,放在單引號中

//此字串形式沒有可用的轉義符

$str3 = <<

這裡就是字串的內容,幾乎可以寫任何東西

包括回車,tab符,$符,等等

包括單雙引號都可以直接寫出

abcd;

echo "$str3

";

4、heredoc(雙引號)定界符字串:

//herdoc

(雙引號)定界符字串

//說明:abcd是乙個自定義的識別符號,放在雙引號中(或不用引號)

//在此形式中,其轉義符跟雙引號字串字串幾乎差不多(雙引號不轉義)

$str4 = <<

包括回車,tab符,

$符,等等

包括單雙引號都可以直接寫出,雙引號:",\"

通常這裡可以方便寫大段的html,js**,並輸出

abcde;

echo "$str4

";

用於標識某種只有兩個狀態值的資料:

true

,false

——吃沒吃,去沒去,有沒有。。。。。

在應用出,我們常常會(需要)直接將乙個資料(可能是各種其他型別)當作乙個布林值來進行判斷

。那麼此時其實發生的是:會將該資料隱含轉換為布林值。

最常見的語法形式就是: num == 3   flag = 1

if(flag){}

if(  某資料

/變數

)在php中,物件跟

js中的有比較大的區別。

通常,js中的物件,有自定定義的(建立的),也有「現成」,比如

window

,location

,標籤物件。

但:php中的物件,通常都是指自己定義的物件,純語法的。

//

定義乙個「人」類

class

person

}$person1 = new person();//建立了乙個"人"類物件:物件型別

$person1->name = "小明";//設定這個人的名字

$person1->age = 22;//設定這個人的年齡

$person1->intorme();//讓這個人自我介紹

含義:基本上都是指對外部資料的引用。(資料非php**生成的)

不是php語言通過某種語法形式「創造」的資料,而是外部本來就有該資料(比如資料庫,檔案,),php只是通過某種語法(或方式)來對其進行某些操作。

只是乙個計算機中程式設計領域的「概念」型別,只是為了表達變數所儲存的資料的某種特殊情形所建立的概念——沒有存資料,或沒有存有效的有意義的資料

通常自動轉換是弱類語言的乙個最基本也最方便的乙個特徵:它會在各種運算中根據運算子的需要也將非該運算子所能處理的資料轉換為可以處理的資料。常見情形如下:

if(資料){}:轉為bool型別

算術運算子:轉為數字型別

連線運算子:轉為字串型別 +  .  

比較運算子:轉為布林型別或數字型別

兩邊如果有至少乙個布林,則另一邊就會轉為布林,並進行比較

否則,就轉為數字進行比較

特別常用的乙個轉換(不管是自動轉換還是強制轉換),就是字串轉換為數字:

「5」 ==>>  5 //整數

「5.5」 ==>> 5.5浮點數

「5abc」 ==>> 5整數

「5.5ab」 ==>> 5.5浮點數

「abc5」 ==>> 0整數

「abc」 ==>> 0整數

「」 ==>> 0

就是通過語法來讓某資料轉換為另一種型別的資料,語法格式為:

(目標型別)資料;

$v1 = (int)7.8;

$v2 = (float)$v1;

echo "v1的值為:$v1,型別為:".gettype($v1);

echo "v2的值為:$v2,型別為:".gettype($v2);

注意:我們並不能使用該語法將任意型別的資料,轉換為其他任意型別——因為有些型別之間的轉換是沒有意義的——系統內部也沒有定義過該型別轉換的規則。

——最常見的轉換通常就發生在基本(標量)資料型別之間。

與var_dump():能夠輸出

乙個變數的完整資訊。

):獲取乙個變數的型別名稱,結果是乙個單詞(字串), settype();設定乙個變數的型別,語法: settype(變數名,目標型別)

$v1 = (int)7.8;//

此時$v1是int型別

$v2 = (floayt)$v1;//

此時$v2是float型別,但$v1還是int型別

settye(

$v1,"float);//此時$v1才轉換,float型別

isset(), empty(), unset();

isset()判斷乙個變數是否存在資料:

empty()判斷乙個資料是否為空:接近我們的日常觀念(沒有就是空)

unset():銷毀(刪除)乙個變數。

is_xx型別() 系列函式:判斷某個資料是否是某種型別,包括:

is_int(), is_float(), is_numeric(),is_bool(), is_array(), is_scalar():

is_numeric()對:3, 3.5,「3」,「3.14」判斷都是true

is_scalar():判斷是否為標量型別(即int,float,stirng,bool)

php偽資料資料型別 PHP的資料型別

php的資料型別 資料型別 整體劃分 標量型別 int,float,string,bool 復合型別 array,object 特殊型別 null,resouce 整數型別int,integer 3種整數表示法 十進位制寫法 123 n1 123 八進位制寫法 0123 n2 0123 十六進製制寫...

PHP 資料型別

php 支援8種基本的資料型別。四種標量型別 boolean 布林型 integer 整型 float 浮點型,也稱作 double string 字串 兩種復合型別 array 陣列 object 物件 最後是兩種特殊型別 resource 資源 null null 為了確保 的易讀性,本手冊還介...

PHP 資料型別

要明確地將乙個值轉換成 boolean 用 bool 或者 boolean 來強制轉換。但是很多情況下不需要用強制轉換,因為當運算子,函式或者流程控制結構需要乙個boolean 引數時,該值會被自動轉換。參見型別轉換的判別。當轉換為 boolean 時,以下值被認為是false warning浮點數...