php面向对象

<?php
class person{
    public $name = '';
    function say($name){
        echo $name."说话";
    }
}
//实例化对象
$zs = new person();
//调用属性和方法
$zs->name = "张三";
$zs->say($zs->name);

类中成员:属性、方法、类常量

然后分一般属性、一般方法 public 不写默认就是public

   静态属性、静态方法 static

静态类调用:

属性调用:类::$静态属性名;

方法调用:类::静态方法名();

$this代表当前所属类的当前对象(谁调这个方法,$this就是谁),在静态方法中不能使用

静态方法中不应调用非静态方法

self代表当前类,通常只能在某个类的某个方法内部代表该类的名称

class s2{
    public $v1 = 1;
    static function getNew(){
        return new self;  //self代表当前类,new self代表当前类的一个对象
    }
}
echo "<hr />";
$obj2 = s2::getNew();
var_dump($obj2);

构造函数

__construct()

如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配(一 一对应)

class p{
    public $name = "匿名";
    public $age = 18;
    function intro(){
        echo "<br />hi,大家好我叫".$this->name;
        echo ",今年".$this->age."岁";
    }
    function __construct($n,$a){
        $this->name = $n;
        $this->age = $a;
    }
}
$p2 = new p('李四',22);
$p2->intro();

class p{
    public $name = "匿名";
    public $age = 18;
    function intro(){
        echo "<br />hi,大家好我叫".$this->name;
        echo ",今年".$this->age."岁";
    }
    function __construct($n,$a){
        $this->name = $n;
        $this->age = $a;
    }
}
$p2 = new p('李四',22);
$p2->intro();

构造方法是“创建”对象的时候会自动调用。

析构方法是“销毁”对象的时候会自动调用。

原文地址:https://www.cnblogs.com/liangdong/p/10370833.html