資源
PHP有很多資源類型:數(shù)據(jù)庫(kù)連接专钉、結(jié)果挑童、圖像、PDF等
is_resource():判斷一個(gè)變量是否是一個(gè)資源類型跃须;
get_resouce_type()返回一個(gè)資源的類型;
NULL
NULL值代表一個(gè)變量沒有值站叼,他是null類型唯一的可能值;NULL的三種情況
- 被指定為NULL(標(biāo)準(zhǔn)是大寫菇民,但是小寫也是可以的null)
- 未初始化的變量尽楔;
- 被unset的變量;
Paste_Image.png
is_null()判斷變量是否是NULL值
Callbacks / Callable
從php5.4開始第练, Callbacks 作為callable的類型提示阔馋;call_user_func()和usort()等函數(shù)就是使用callable函數(shù)作為參數(shù), 參數(shù)可以是:
- 函數(shù)名(字符串), 也可以是內(nèi)置函數(shù),但不能是語(yǔ)言結(jié)構(gòu):empty娇掏,unset呕寝,isset,array等婴梧。
- 實(shí)例化的對(duì)象的方法: 需要傳入一個(gè)數(shù)組:(對(duì)象下梢,方法名)作為參數(shù)客蹋,其中private和protected方法都可以被使用
- 靜態(tài)方法: 需要傳入一個(gè)數(shù)組:(類名,方法名)作為參數(shù)孽江,或者簡(jiǎn)寫:"ClassName::MethodName"
<?php
// An example callback function
function my_callback_function() {
echo 'hello world!';
}
// An example callback method
class MyClass {
static function myCallbackMethod() {
echo 'Hello World!';
}
}
// Type 1: Simple callback
call_user_func('my_callback_function');
// Type 2: Static class method call
call_user_func(array('MyClass', 'myCallbackMethod'));
// Type 3: Object method call
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
// Type 4: Static class method call (As of PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');
// Type 5: Relative static class method call (As of PHP 5.3.0)
class A {
public static function who() {
echo "A\n";
}
}
class B extends A {
public static function who() {
echo "B\n";
}
}
call_user_func(array('B', 'parent::who')); // A
// Type 6: Objects implementing __invoke can be used as callables (since PHP 5.3)
class C {
public function __invoke($name) {
echo 'Hello ', $name, "\n";
}
}
$c = new C();
call_user_func($c, 'PHP!');
?>