补完 面向对象的关键词以及其他

//魔术方法
//构造函数,对类里面成员进行初始化
function __construct()
{
}
//析构函数,在对象释放的时候自动执行
function __destruct()
{
}

//__set方法 赋值
function __set($name,$value)
{
}
//__get方法 获取
function __get($name)
{
}

//__tostring()方法
function __tostring()
{
}

//__clone方法
function __clone()
{
}

//__autoload方法
function __autoload($classname)
{
}

//关键字
//1.class 定义类
//2.访问修饰符 public protected private
//3.new 造对象的关键字
//4.$this 代表该对象本身
//5.extends 代表继承
//6.parent 代表父类
//7.static 代表静态
//8.self 代表该类
//9.abstract 代表抽象,定义抽象类
//10.interface 代表接口,用来定义接口
//11.implements 实现接口
//12.clone 代表克隆
//13.override 重写
//14.overload 重载
//15.oop 代表面向对象
//16.final 写在定义类前面的,将该类定义为最终类,则该类不能被继承
/自动加载类
//1.所有的类文件要放在同一个文件夹下
//2.所有类文件的命名规则要一致
//3.所有类文件的名字要和类名保持一致

function __autoload($classname)
{
    require "./libs/".$classname.".class.php";
}

$r = new Ren();
var_dump($r);

$d = new cat();

//__tostring()能够直接输出对象

class Ren
{
    public $name;
    
    function Run()
    {
        echo "跑";
    }
    
    function __tostring()
    {
        return "name变量代表的是人员名称,Run方法是一个跑的方法";
    }
}

$r = new Ren();
echo $r;

所以输出结果是  name变量代表的是人员名称,Run方法是一个跑的方法

//克隆对象
class Ren
{
    public $name;
    
    function Run()
    {
        echo "跑";
    }
    
    function __tostring()
    {
        return "name变量代表的是人员名称,Run方法是一个跑的方法";
    }
    
    //克隆对象的时候自动调用的方法
    function __clone()
    {
        $this->name = "李四";
    }
}

$r = new Ren();
$r->name = "张三";

$r1 = clone $r;
var_dump($r1);
var_dump($r);


输出结果是(object(Ren)[2]
  public 'name' => string '李四' (length=6)
object(Ren)[1]
  public 'name' => string '张三' (length=6))


 
原文地址:https://www.cnblogs.com/xiaoming-6/p/6185242.html