久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

13
2017/08

PHP 數(shù)據(jù)類型

發(fā)布時間:2017-08-13 22:26:05
發(fā)布者:pengyifeng
瀏覽量:
0

四種標題類型

boolean(布爾型)

integer(整型)

float(浮點型,也稱作 double)

string(字符串)


三種復合類型

array(數(shù)組)

object(對象)

callable(可調(diào)用)


兩種特殊類型

resource(資源)

NULL(無類型)


偽類型

mixed(混合類型)

number(數(shù)字類型)

callback(回調(diào)類型,又稱為 callable)

array|object(數(shù)組 | 對象類型)

void (無類型)


獲取變量的類型

gettype — 獲取變量的類型

string gettype ( mixed $var )


檢測變量的類型

is_array — 檢測變量是否是數(shù)組

is_bool — 檢測變量是否是布爾型

is_callable — 檢測參數(shù)是否為合法的可調(diào)用結構

is_double — is_float 的別名

is_float — 檢測變量是否是浮點型

is_int — 檢測變量是否是整數(shù)

is_integer — is_int 的別名

is_iterable — Verify that the contents of a variable is an iterable value

is_long — is_int 的別名

is_null — 檢測變量是否為 NULL

is_numeric — 檢測變量是否為數(shù)字或數(shù)字字符串

is_object — 檢測變量是否是一個對象

is_real — is_float 的別名

is_resource — 檢測變量是否為資源類型

is_scalar — 檢測變量是否是一個標量

is_string — 檢測變量是否是字符串

isset — 檢測變量是否設置

is_nan — 判斷是否為合法數(shù)值


變量類型轉換

settype — 設置變量的類型

bool settype ( mixed &$var , string $type )


       “boolean” (或為“bool”,從 PHP 4.2.0 起)
type取值

integer” (或為“int”,從 PHP 4.2.0 起)

float” (只在 PHP 4.2.0 之后可以使用,對于舊版本中使用的“double”現(xiàn)已停用)

string"

array"

object"

null” (從 PHP 4.2.0 起)


類型強制轉換

(int), (integer) - 轉換為整形 integer

(bool), (boolean) - 轉換為布爾類型 boolean

(float), (double), (real) - 轉換為浮點型 float

(string) - 轉換為字符串 string

(array) - 轉換為數(shù)組 array

(object) - 轉換為對象 object

(unset) - 轉換為 NULL (PHP 5)


Boolean 布爾類型

這是最簡單的類型。boolean 表達了真值,可以為 TRUE 或 FALSE。


轉換為布爾值

要明確地將一個值轉換成 boolean,用 (bool) 或者 (boolean) 來強制轉換。

但是很多情況下不需要用強制轉換,因為當運算符,函數(shù)或者流程控制結構需要一個 boolean 參數(shù)時,該值會被自動轉換。

當轉換為 boolean 時,以下值被認為是 FALSE:

布爾值 FALSE 本身

整型值 0(零)

浮點型值 0.0(零)

空字符串,以及字符串 "0"

不包括任何元素的數(shù)組

特殊類型 NULL(包括尚未賦值的變量)

從空標記生成的 SimpleXML 對象

-1 和其它非零值(不論正負)一樣,被認為是 TRUE!


Integer 整型

整型值可以使用十進制,十六進制,八進制或二進制表示,前面可以加上可選的符號(- 或者 +)。


整數(shù)溢出

如果給定的一個數(shù)超出了 integer 的范圍,將會被解釋為 float。

同樣如果執(zhí)行的運算結果超出了 integer 范圍,也會返回 float。


布爾值轉換成整型

FALSE 將產(chǎn)生出 0(零),TRUE 將產(chǎn)生出 1(壹)。


浮點型轉成整型

當從浮點數(shù)轉換成整數(shù)時,將向下取整。

echo (int)3.12; # 輸出3


字符串轉成整型


Float 浮點型

浮點型(也叫浮點數(shù) float,雙精度數(shù) double 或實數(shù) real)可以用以下任一語法定義:


浮點數(shù)的精度

所以永遠不要相信浮點數(shù)結果精確到了最后一位,也永遠不要比較兩個浮點數(shù)是否相等。

如果確實需要更高的精度,應該使用任意精度數(shù)學函數(shù)或者 gmp 函數(shù)。

echo floor((0.1+0.7)*10); # 輸出7


String 字符串

一個字符串 string 就是由一系列的字符組成,其中每個字符等同于一個字節(jié)。

這意味著 PHP 只能支持 256 的字符集,因此不支持 Unicode 。

string 最大可以達到 2GB。


4種方式表達

單引號

雙引號

heredoc 語法結構

nowdoc 語法結構(自 PHP 5.3.0 起)


單引號

不像雙引號和 heredoc 語法結構,在單引號字符串中的變量和特殊字符的轉義序列將不會被替換。


雙引號

用雙引號定義的字符串最重要的特征是變量會被解析。

轉義字符含義
\n換行(ASCII 字符集中的 LF 或 0x0A (10))
\r回車(ASCII 字符集中的 CR 或 0x0D (13))
\t水平制表符(ASCII 字符集中的 HT 或 0x09 (9))
\v垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起)
\eEscape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起)
\f換頁(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起)
\反斜線
\$美元標記
\"雙引號
[0-7]{1,3}符合該正則表達式序列的是一個以八進制方式來表達的字符
\x[0-9A-Fa-f]{1,2}符合該正則表達式序列的是一個以十六進制方式來表達的字符


heredoc類似于雙引號可以解析變量

```php$name = 'Hello';echo <<


nowdoc類似于單引號不會解析變量

$name = 'Hello';echo <<<'EOD'
里面的變量$name不會解析。
EOD;


轉換成字符串

一個值可以通過在其前面加上 (string) 或用 strval() 函數(shù)來轉變成字符串。

一個布爾值 boolean 的 TRUE 被轉換成 string 的 "1"。Boolean 的 FALSE 被轉換成 ""(空字符串)。

這種轉換可以在 boolean 和 string 之間相互進行。

數(shù)組 array 總是轉換成字符串 "Array"。

資源 resource 總會被轉變成 "Resource id #1" 這種結構的字符串。

NULL 總是被轉變成空字符串。


字符串轉成數(shù)值

Array數(shù)組

PHP 中的數(shù)組實際上是一個有序映射。映射是一種把 values 關聯(lián)到 keys 的類型。


定義數(shù)組 array()

可以用 array() 語言結構來新建一個數(shù)組。它接受任意數(shù)量用逗號分隔的 鍵(key) => 值(value)對。

 "bar",    "bar" => "foo",
);// 自 PHP 5.4 起$array = [    "foo" => "bar",    "bar" => "foo",
];?>

key 會有如下的強制轉換

包含有合法整型值的字符串會被轉換為整型。例如鍵名 "8" 實際會被儲存為 8。但是 "08" 則不會強制轉換,因為其不是一個合法的十進制數(shù)值。

浮點數(shù)也會被轉換為整型,意味著其小數(shù)部分會被舍去。例如鍵名 8.7 實際會被儲存為 8。

布爾值也會被轉換成整型。即鍵名 true 實際會被儲存為 1 而鍵名 false 會被儲存為 0。

Null 會被轉換為空字符串,即鍵名 null 實際會被儲存為 ""。

數(shù)組和對象不能被用為鍵名。堅持這么做會導致警告:Illegal offset type。


數(shù)組類型

數(shù)字索引數(shù)組(下標為數(shù)字)

關聯(lián)數(shù)組(鍵值對)


數(shù)組遍歷

$arr = ['one'=>'First', 'two'=>'Second'];foreach ($arr as $key => $value)
{    echo '$key=' . "$key" . "
";    echo '$value=' . "$value" . "
"; }


Object 對象


對象初始化

要創(chuàng)建一個新的對象 object,使用 new 語句實例化一個類:

do_foo();?>


轉換為對象

如果將一個對象轉換成對象,它將不會有任何變化。

如果其它任何類型的值被轉換成對象,將會創(chuàng)建一個內(nèi)置類 stdClass 的實例。

 'foo');
var_dump(isset($obj->{'1'})); // outputs 'bool(false)'
var_dump(key($obj)); // outputs 'int(1)'?>

對于其他值,會包含進成員變量名 scalar。

scalar;  // outputs 'ciao'?>


Resource 資源類型

資源 resource 是一種特殊變量,保存了到外部資源的一個引用。

資源是通過專門的函數(shù)來建立和使用的。


轉換為資源

由于資源類型變量保存有為打開文件、數(shù)據(jù)庫連接、圖形畫布區(qū)域等的特殊句柄,因此將其它類型的值轉換為資源沒有意義。


釋放資源

PHP也有垃圾自動回收機制,可以自動檢測到一個資源不再被引用了。

持久數(shù)據(jù)庫連接比較特殊,它們不會被垃圾回收系統(tǒng)銷毀。


NULL

特殊的 NULL 值表示一個變量沒有值。NULL 類型唯一可能的值就是 NULL。

在下列情況下一個變量被認為是 NULL

被賦值為 NULL。

尚未被賦值。

被 unset()。


轉換到 NULL

使用 (unset) $var 將一個變量轉換為 null 將不會刪除該變量或 unset 其值。僅是返回 NULL 值而已。


mixed

mixed 說明一個參數(shù)可以接受多種不同的(但不一定是所有的)類型。

例如 gettype() 可以接受所有的 PHP 類型,str_replace() 可以接受字符串和數(shù)組。


number

number 說明一個參數(shù)可以是 integer 或者 float。


array|object

array|object 意思是參數(shù)既可以是 array 也可以是 object。


void

void 作為返回類型意味著函數(shù)的返回值是無用的。

void 作為參數(shù)列表意味著函數(shù)不接受任何參數(shù)。


php如何聲明定義數(shù)組

索引數(shù)組

默認下標或帶有數(shù)字索引的數(shù)組

關聯(lián)數(shù)組

鍵名不為純數(shù)字帶有指定值如標識符的數(shù)組

有關鍵值的說明

鍵(key)可以是一個整數(shù)integer或字符串string

值(value)可以是任意類型的值

直接為元素賦值

$myarr['Q'] = "Q";$myarr[] = "A";$myarr[] = "B";$myarr[2] = "B";
print_r($myarr);#在php中數(shù)據(jù)可以動態(tài)改變長度。并且會默認按下標進行賦值。

使用array函數(shù)進行賦值

#一維數(shù)組$myarr = array("A","B","C");foreach($myarr as $key => $value){    echo "key=".$key;    echo "value=".$value;    echo "
";
}#多維數(shù)組,遞歸輸出數(shù)組值function myfun(array $myarr){    foreach($myarr as $key => $value){        if(is_array($value)){
            myfun($value);
        }else{            echo "key=".$key;            echo "value=".$value;            echo "
";
        }
    }
}$myarr = array("A"=>array("1"=>array("a","b","c"),"2","3"),"B","C");echo myfun($myarr)."維數(shù)組";


php如何調(diào)用數(shù)組方法

array_keys()返回數(shù)組中所有的鍵名

$myarr = array("A","B","C");
print_r(array_keys($myarr));

array_values()返回數(shù)組中所有的值

$myarr = array("A","B","C");
print_r(array_values($myarr));


php如何對數(shù)組查、增、改、刪

查array_search()數(shù)組值查找

#返回查找到的元素下標$myarr = array("A","B","C");echo array_search("B",$myarr);

增array_push()隊尾添加數(shù)據(jù)

#返回增加后數(shù)組的大小$myarr = array("A","B","C");echo array_push($myarr,"D");
print_r($myarr);

改array_chunk()一維轉多維

$myarr = array("A","B","C");$myarr = array_chunk($myarr,2,true);
print_r($myarr);

刪array_unique()

#返回刪除重復元素后的數(shù)組$myarr = array("A","B","C","B");
print_r(array_unique($myarr));#unset無返回值$myarr = array("A","B","C");unset($myarr[2]);

合并array_merge()

$myarr1 = array("one","two");$myarr2 = array("three","four");$myarr3 = array_merge($myarr1, $myarr2);
print_r($myarr3);


php如何進行數(shù)據(jù)類型轉換

類C強制轉換

#第一種轉換方式: (int)  (bool)  (float)  (string)  (array) (object)2.$num1=3.14;3.$num2=(int)$num1;4.var_dump($num1); //輸出float(3.14)5.var_dump($num2); //輸出int(3)

獲取變量整數(shù)、浮點、字符串值

#第二種轉換方式:  intval()  floatval()  strval()2.$str="123.9abc";3.$int=intval($str);     //轉換后數(shù)值:1234.$float=floatval($str); //轉換后數(shù)值:123.95.$str=strval($float);   //轉換后字符串:"123.9"

使用settype()封裝函數(shù)

#bool settype ( mixed &$var , string $type )
type 的可能值為:
“boolean” (或為“bool”,從 PHP 4.2.0 起)
“integer” (或為“int”,從 PHP 4.2.0 起)
“float” (只在 PHP 4.2.0 之后可以使用,對于舊版本中使用的“double”現(xiàn)已停用)"string""array""object"
“null” (從 PHP 4.2.0 起)2.$num4=12.8;3.$flg=settype($num4,"int");4.var_dump($flg);  //輸出bool(true)5.var_dump($num4); //輸出int(12)


php如何處理進制轉換

十進制轉二進制decbin()

echo decbin(12); //輸出 1100

十進制轉八進制 decoct()

echo decoct(15); //輸出 17

十進制轉十六進制 dechex()

echo dechex(10); //輸出 a

二進制轉十六制進 bin2hex()

$binary = "11111001";$hex = dechex(bindec($binary));echo $hex;//輸出f9

二進制轉十制進 bindec()

echo bindec('110011'); //輸出 51

八進制轉十進制 octdec()

echo octdec('77'); //輸出 63

十六進制轉十進制 hexdec()

echo hexdec("F"); //輸出 15

任意進制轉換 base_convert()

$hexadecimal = 'A37334';echo base_convert($hexadecimal, 16, 2);//輸出 101000110111001100110100


關鍵詞:
返回列表