手记

【九月打卡】第17天--PHP面向对象编程第三章节面向对象的基本实践

课程名称:PHP面向对象编程

课程章节:
3-5 析构函数-php面向对象编程
3-6 对象引用的基本概念-php面向对象编程
3-7 本章小结
课程链接

主讲老师:Peter

课程内容

讲解了析构函数的用法,并且结合了上节所说的构造函数,一起讲述了他俩的作用。对象引用实际上讲解的是PHP中的引用传递和值传递的概念。

课程收获

一、析构函数

PHP 拥有类似于其他面向对象语言(例如 C++)的析构函数概念。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。

和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。此外也和构造函数一样,子类如果自己没有定义析构函数则会继承父类的。

析构函数即使在使用 exit() 终止脚本运行时也会被调用。在析构函数中调用 exit() 将会中止其余关闭操作的运行。

<?php

class NbaPlayer
{
    // 定义属性
    public $name = "JorDan";
    public $height = "198cm";
    public $weight = "98kg";
    public $team = "Bull";
    public $playerNumber = "23";


    function __construct($name, $height, $weight, $team, $playerNumber)
    {
        echo "In NbaPlayer constructor\n";
        $this->name = $name;
        $this->height = $height;
        $this->weight = $weight;
        $this->team = $team;
        $this->playerNumber = $playerNumber;
    } 

    function __destruct()
    {
        echo "Destroying". $this->name . "\n";
    }

    // 定义方法
    public function run()
    {
        echo "Running\n";
    }

    public function jump()
    {
        echo "Jumping\n";
    }

    public function dribble()
    {
        echo "Dribbling\n";
    }

    public function shoot()
    {
        echo "Shooting\n";
    }

    public function dunk()
    {
        echo "Dunking\n";
    }

    public function pass()
    {
        echo "Passing\n";
    }
}

// 类的实例化
$james = new NbaPlayer("James","203cm","120kg","Heat","6");
echo $james->name."\n";
echo "From now on James will not be used.\n";


二、对象引用的基本概念

对象引用使用&,实际上用的就是引用传递和值传递概念

值传递:函数范围内对值的任何改变在函数外部都会被忽略
引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

优缺点

按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。

课程截图


0人推荐
随时随地看视频
慕课网APP