1> if( "false" ) 等效于 if( true),因为非空字符串是true
2> 检查数据类型:
is_array();
is_object();
is_string();
is_null();
is_integer();
3> PHP5 引入类的类型提示(type hint),用来约束一个方法的参数类型(不是基本数据类型,而是类):将类名放在需要约束的方法参数之前.
例如: function write( ShopProduct $shopProduct){} 4> instanceof 操作符: 如果左边操作数的对象是右边操作数所示的类型,结果为true
例如: if( $shopProduct instanceof BookProduct ) {} 5> 继承 class son extends parent{}
要调用父类的方法,比如构造函数,用 parent::construct(); 6> 静态方法和属性
class StaticExample{
static public $a;
static public function hello(){}
}
外部访问使用::
例如: print StaticExample::$a;
内部访问使用self::
例如: self::$a; 7> 抽象类,抽象方法
abstract class xxx{
...
abstract function write(); //没有{}
} 抽象类的子类要重新声明方法并实现之. 新实现的方法的访问控制不能比抽象方法的访问控制更严格. 8>接口 interface
只定义功能,不包含实现. 接口中可以包含属性和方法声明,但方法体为空;
例如: interface a{
public function b();
}
任何实现接口的类都要实现接口中定义的所有方法,否则就必须是抽象类.
类在声明中使用implements来实现某个接口.
class Shop implements a{
public function b(){
...
}
} 9> 异常 exception
PHP5引入异常类 10>拦截器 interceptor
get($property); 访问未定义的属性时被调用
set($property,$value); 给未定义的属性赋值时被调用
isset($property); 对未定义的属性使用isset()时被调用;
unset($property);对未定义的属性调用unset()时被调用;
call($method,$arg_array); 调用未定义的方法时候被调用
例: get()的实现
<div class="codetitle"><a style="CURSOR: pointer" data="50927" class="copybut" id="copybut50927" onclick="doCopy('code50927')"> 代码如下: