魔术方法
class A
{
const PI = 3.14;
static $type = 'type1';
public $a1='a1';
public function fun1(){
var_dump('我是fun1');
}
public $a2='a2';
protected function fun2(){
var_dump('我是fun1');
}
public $a3='a3';
private function fun3(){
var_dump('我是fun1');
}
final function fun4(){ //最终方法 子级不可覆盖 } function __construct() //构造函数 实例化对象时调用
{
var_dump(self::PI);
} function __get($name)//获取对象不存在的属性是执行
{
// TODO: Implement __get() method.
} function __set($name, $value)//设置对象不存在的属性是执行
{
// TODO: Implement __set() method.
} function __isset($name)//
{
// TODO: Implement __isset() method.
} function __unset($name)
{
// TODO: Implement __unset() method.
} function __call($name, $arguments) //调用对象不存在的方法时调用
{
// TODO: Implement __call() method.
} function __clone() //克隆对象时调用
{
// TODO: Implement __clone() method.
} function __destruct()//析构函数
{
// TODO: Implement __destruct() method.
}
function __sleep() //对象序列化时调用
{
// TODO: Implement __sleep() method.
return arr('a',b);
}
function __wakeup()//对象反序列化时调用
{
// TODO: Implement __wakeup() method.
} function __toString()//对象当做字符串使用时
{
// TODO: Implement __toString() method.
return 'str';
} function __invoke() //对象当做方式是调用
{
// TODO: Implement __invoke() method.
}
}
$a=new A();
魔术常量
var_dump(__FILE__) ;
var_dump(__DIR__) ;
var_dump(__LINE__) ;
function fn(){
echo __METHOD__;
echo __CLASS__;
}
fn();