学习php面向对象知识小结(对象的创建,构建函数以及析构函数的使用)
程序员文章站
2022-03-25 17:51:56
学习php面向对象知识小结 一、类的创建 1. 类的定义以class关键字开始,后面跟着这个类的名称。类的名称命名通常每个单词的第一个字母大写。2. 定义类的属性3. 定义类的方法 class NbaPlayer { // 类的属性的定义 public $name="小明"; public $age ......
学习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的时候,对象的析构函数会被自动调用,同一个类的其他对象不受影响