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