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ù)都可以,真的就是省略號...)
- php是支持強(qiáng)制轉(zhuǎn)換的:引入一個(gè)和Java相差很多的概念玲躯,php在定義變量的時(shí)候不支持(或者是不建議明確的類型定義)据德,如果把一個(gè)String值賦值給$var,$var的類型就是String型;如果又把integer賦值給$var,$var就成了integer跷车。(變量類型是根據(jù)使用該變量的上下文決定的)
object對象
- 要?jiǎng)?chuàng)建一個(gè)新的對象object棘利,使用new關(guān)鍵字初識化。
<?php
/**
* new 實(shí)例化對象
* -> 執(zhí)行類中的方法
*/
class foo
{
function do_foo(){
echo "doing foo";
}
}
$bar = new foo;
$bar->do_foo();
?>
- 對象轉(zhuǎn)換成對象朽缴,無變化
- 其他類型的值轉(zhuǎn)化為對象善玫,會(huì)創(chuàng)建一個(gè)內(nèi)置類stdClass實(shí)例,如果該值為NULL密强,則新的實(shí)例為空蝌焚。
- 數(shù)組轉(zhuǎn)化成對象將使鍵名成為其屬性名并具體相應(yīng)的值
- 對于任何其他的值裹唆,名為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";
// 打永涂印:mysql link
$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打颖锨础:file
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打印:domxml document
?>
- 關(guān)于資源的轉(zhuǎn)化和釋放:php不建議將其他對象轉(zhuǎn)化為資源距芬,因?yàn)闆]有意義涝开。php資源的釋放像Java一樣,程序會(huì)檢測資源不再被外部引用框仔,就會(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():字符串長度
- strpos():字符串所在的位置
小結(jié)
有不對或者不準(zhǔn)確的地方歡迎大家糾正