课程名称: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";