PHP的面向对象-静态对象-自动加载-命名空间(二)
面向对象:1.这是重点!这是重点!这是重点!重要的事情说三遍!面向对象的特征有三点:封装 继承 多态.
静态对象:
static 声明一个成员为静态页成员 用static关键字
静态成员 可以不实例化这类 直接调用 语法:
类名::$name;
类名::方法名;
在类的内部调用的语法;
self::$name
self::方法名();
静态成员不随着类的实例化儿初始化
静态属性或者静态方法 一般用来 存储多个对象之间的共有数据.
//PHP魔术方法:
//__toString被当成字符串时使用.
//__invoke被对象当初函数去使用.
//__construct这个方法叫做构造方法,在实例化这个类的时候会执行他,__construct是固定词语
//__destruct 析构函数,在对象被释放的时候运行 unset函数程序运行完毕的时候.显示时先显示最后一个
//__call调用对象内部一个不存在的方法
//克隆方法:
class tt{
public $name;
function __toString(){
return "我是魔术方法toString,在这个对象被当作字符串去输出的时候,我会被自动调用";
}
function __invoke($ss){
echo "我是__invoke,当对象被当作函数去使用的时候,我会被自动调用,假如被当作函数使用时,并且传入了参数,那么参数会依次传递给我";
var_dump($ss);
}
function __destruct(){
echo "我是析构函数,在对象被释放的时候自动调用";
echo $this->name;
echo "<hr>";
}
function __call($md,$ps){
echo "当调用对象内部一个不存在的方法时,会自动调用我";
var_dump($md);
var_dump($ps);
}
function qq(){
echo "制作制制作制制作制";
}
}
$xx = new tt();
$xx->name = "lilili";
$tt1 = new tt();
$tt1->name = "heiheihei";
$tt2 = $xx;
$tt3 = clone $xx;
var_dump($tt3);
// $xx->xx4("说的是","是公司的");
// $xx1 = clone $xx;
// class test {
// public $name1 =2;
// public static $name = 1;//静态属性不会随着,新的实力化而初始化
// function __construct(){
// self::$name++;
// $this->name1++;
// }
// static function name3(){
// self::$name++;
// }
// }
// $test =new test();
// echo $test->name1;
// echo "<hr>";
// echo test::$name;
// echo "<hr>";
// $test1 = new test();
// echo "<hr>";
// echo test::$name;
// test::name3();
// test::name3();
// test::name3();
// test::name3();
// echo test::$name;
?>
你以为这篇会没意思,哼,太可笑了.
练习:

浙公网安备 33010602011771号