学习php面向对象知识小结

一、类的创建

1. 类的定义以class关键字开始,后面跟着这个类的名称。类的名称命名通常每个单词的第一个字母大写。
2. 定义类的属性
3. 定义类的方法

class nbaplayer
{
    // 类的属性的定义
    public $name="小明";
    public $age="18";

    // 类的方法的定义
    public function sayname() {
        echo $this->name."\n";
    }

    public function sayage(){
        echo $this->age."\n";
    }
}

4. 实例化类的对象
5. 使用对象的属性和方法

//1. 类实例化为对象时使用new关键字,new之后紧跟类的名称和一对括号。
// 2. 使用对象可以像使用其他值一样进行赋值操作

$xiaoming = new person();
// 访问对象的属性使用的语法是->符号,后面跟着属性的名称
echo '属性调用:'."\n";
echo $xiaoming->name."\n";
// 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号
echo '方法调用:'."\n";
$xiaoming->sayname();
$xiaoming->sayage();

我们运行一下这个代码 (通过命令行的形式)

 

我们成功使用类实例化了一个对象

二、 构造函数与构造函数

 默认的构造函数,在对象被实例化的时候自动调用

 

<?php
date_default_timezone_set("prc");

class person
{
    // 类的属性的定义
    public $name = "小明";
    public $age = "18";

    //构造函数的使用
    function __construct($name, $age)
    {
        $this->name = $name; // $this是php里面的伪变量,表示对象自身
        $this->age = $age;
    }

    // 类的方法的定义
    public function sayname()
    {
        echo $this->name . "\n";
    }

    public function sayage()
    {
        echo $this->age . "\n";
    }
}


$aym = new person('aym','20');

$aym->sayname();
$aym->sayage();

运行效果

 

 

 可以看到我们已经成功初始化了我们想要的结果

我们并没有直接去调用这个function __construct()函数,而是在我们在对象被实例化的时候自动调用

析构函数的使用析构函数,用于清理程序中使用的系统资源,比如释放打开的文件等等

析构函数在该对象不会再被使用的情况下自动调用

析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做”清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)

<?php
date_default_timezone_set("prc");

class person
{
    // 类的属性的定义
    public $name = "小明";
    public $age = "18";

    //构造函数的使用
    function __construct($name, $age)
    {
        $this->name = $name; // $this是php里面的伪变量,表示对象自身
        $this->age = $age;
    }

    //析构函数的使用
    function __destruct()
    {
        echo "destroying " . $this->name . "\n";
    }

    //类的方法的定义
    public function sayname()
    {
        echo $this->name . "\n";
    }

    public function sayage()
    {
        echo $this->age . "\n";
    }
}

$aym = new person('aym', '20');
$tom = new person('tom', '18');
$aym->sayname();
$tom->sayname();

$tom = null;
echo '---分界---'."\n";

echo '程序执行完了' . "\n";

在我们的代码都执行完成够,系统会帮我们调用对象的function __destroy()函数

当对象变量被赋值为null的时候,对象的析构函数会被自动调用,同一个类的其他对象不受影响