php的數(shù)據(jù)類型
- php支持8種基本數(shù)據(jù)類型(和Java一樣)
- 支持2中特殊類型:resource(資源)null(無類型)
- php支持的偽類型:mixed(混合類型) number(數(shù)字類型)callback(回調(diào)類型)
偽類型與變量
- mixed,比如gettype()可以接收所有的PHP類型,str_replace()可以接收字符串和數(shù)組
- number:說明參數(shù)可以是integer或者是float
- callback:回調(diào)類型,在php5.4引入callable類型之前使用了callback偽類型。2者的意義是完全相同的
- 偽變量 $...:個(gè)人覺得這個(gè)太6了,在函數(shù)原型中 $... 表示等等的意思,表示該函數(shù)可以接收任意個(gè)參數(shù)(多少個(gè)參數(shù)都可以,真的就是省略號(hào)...)
- php是支持強(qiáng)制轉(zhuǎn)換的:引入一個(gè)和Java相差很多的概念,php在定義變量的時(shí)候不支持(或者是不建議明確的類型定義),如果把一個(gè)String值賦值給$var,$var的類型就是String型;如果又把integer賦值給$var,$var就成了integer。(變量類型是根據(jù)使用該變量的上下文決定的)
object對(duì)象
- 要?jiǎng)?chuàng)建一個(gè)新的對(duì)象object,使用new關(guān)鍵字初識(shí)化。
<?php
/**
* new 實(shí)例化對(duì)象
* -> 執(zhí)行類中的方法
*/
class foo
{
function do_foo(){
echo "doing foo";
}
}
$bar = new foo;
$bar->do_foo();
?>
- 對(duì)象轉(zhuǎn)換成對(duì)象,無變化
- 其他類型的值轉(zhuǎn)化為對(duì)象,會(huì)創(chuàng)建一個(gè)內(nèi)置類stdClass實(shí)例,如果該值為NULL,則新的實(shí)例為空。
- 數(shù)組轉(zhuǎn)化成對(duì)象將使鍵名成為其屬性名并具體相應(yīng)的值
- 對(duì)于任何其他的值,名為scalar的成員變量將包含該值。
<?php
$obj = (object)'fhasfjdas';
echo $obj->scalar;
?>
Resource資源類型
- 概念:保存了一個(gè)到外部資源的引用。資源是通過專門的函數(shù)來創(chuàng)建和使用的。
- get_resource_type() 返回資源的類型
<?php
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打?。簃ysql link
$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印:file
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打?。篸omxml document
?>
- 關(guān)于資源的轉(zhuǎn)化和釋放:php不建議將其他對(duì)象轉(zhuǎn)化為資源,因?yàn)闆]有意義。php資源的釋放像Java一樣,程序會(huì)檢測(cè)資源不再被外部引用,就會(huì)被垃圾回收機(jī)制釋放回收掉,基本不需要人為釋放資源。
NULL
- 變量會(huì)認(rèn)為是null的情景:被賦值為null;尚未被賦值;被unset()
unset
- 如果用unset()銷毀一個(gè)全局變量,則只是局部變量被銷毀,在調(diào)用環(huán)境中的變量將保持調(diào)用unset()之前一樣的值
- 在函數(shù)中unset()一個(gè)全局變量,需要用到$GLOBALS數(shù)組來實(shí)現(xiàn)。
- 如果在函數(shù)中 unset() 一個(gè)通過引用傳遞的變量,則只是局部變量被銷毀,而在調(diào)用環(huán)境中的變量將保持調(diào)用 unset() 之前一樣的值。
- 注意:使用(unset)$var將一個(gè)變量轉(zhuǎn)化為null,不會(huì)刪除該變量或者unset()其值。僅是返回null值
函數(shù)的作用
- value_dump():查看表達(dá)式的值和類型
- gettype():返回一個(gè)通俗易懂的表達(dá)式,方便調(diào)試
- istype():查看類型
- settype():改變一個(gè)變量的類型
- var_dump():打印變量的相關(guān)信息,
- eval(): 把字符串作為PHP代碼執(zhí)行
- isset():檢查變量是否可以設(shè)置
- strlen():字符串長(zhǎng)度
- strpos():字符串所在的位置
小結(jié)
有不對(duì)或者不準(zhǔn)確的地方歡迎大家糾正
一個(gè)敲代碼,愛分享的人,我在這里!

來玩啊