|
1、构造方法
- <?php
- /*
- __construct()
- 作用:用于成员属性的初始化
- 特点:当对象呗实例化时,自动调用。例如 new ClassName()
- */
- class User
- {
- public $name;
- public $age;
- // 构造方法
- // 执行时机:当实例化对象的时候,自动调用
- public function __construct(string $name, int $age)
- {
- // $this 伪变量。代表的是对象,表示的是自己。
- echo 'consturct:' . $name . $age;
- // 数据初始化
- $this->name = $name;
- $this->age = $age;
- }
- /*
- 旧版本 的构造方法
- public function User()
- {
- }
- */
- public function info() : array
- {
- return ['name' => $this->name, 'age' => $this->age];
- }
- }
- // $user = new User();
- // $user->name = '张三';
- // $user->age = 28;
- // $list = $user->info();
- // echo '<pre>';
- // print_r($list);
- // echo '</pre>';
- // $user2 = new User();
- // $user2->name = '李四';
- // $user2->age = 29;
- // $list = $user2->info();
- // echo '<pre>';
- // print_r($list);
- // echo '</pre>';
- $zs = new User('张三', 28);
- echo '<pre>';
- print_r($zs);
- echo '</pre>';
- $ls = new User('李四', 29);
- echo '<pre>';
- print_r($ls);
- echo '</pre>';
复制代码 2、析构方法的使用
- <?php
- /*
- // 获取MIME
- // 1. 创建一个 finfo 资源
- $finfo = finfo_open(FILEINFO_MIME_TYPE);
- var_dump($finfo);
- // 2. 获取MIME类型
- $mime = finfo_file($finfo, './image/1.png');
- var_dump($mime);
- // 3. 关闭 finfo 资源
- finfo_close($finfo);
- */
- class Finfos
- {
- // 文件名
- public $fileName = '';
- // finfo 资源
- public $finfo = null;
- // 构造方法
- public function __construct(string $fileName)
- {
- // 属性初始化
- $this->fileName = $fileName;
- // 1. 创建一个 finfo 资源
- $this->finfo = finfo_open(FILEINFO_MIME_TYPE);
- }
- // 声明获取MIME类型的方法
- public function mime()
- {
- // 2. 获取MIME类型
- $mime = finfo_file($this->finfo, $this->fileName);
- return $mime;
- }
- // 析构方法
- // 作用:释放资源,回收垃圾
- // 特点:对象被销毁时自动调用。
- public function __destruct()
- {
- // 3. 关闭 finfo 资源
- finfo_close($this->finfo);
- }
- }
- $finfo = new Finfos('./image/1.png');
- $mime = $finfo->mime();
- echo '<pre>';
- print_r($finfo);
- echo '</pre>';
- var_dump($mime);
复制代码 构造方法的注意事项
- <?php
- class User
- {
- public $name;
- public $age;
- // 构造方法
- // 执行时机:当实例化对象的时候,自动调用
- public function __construct(string $name, int $age)
- {
- // $this 伪变量。代表的是对象,表示的是自己。
- echo 'consturct:' . $name . $age;
- // 数据初始化
- $this->name = $name;
- $this->age = $age;
- // 仍然可以终止后面的执行
- return false;
- echo 'end.';
- // 构造方法是一个特殊的函数,在里面执行 return ,不会将返回值带到外部。
- }
- public function info() : array
- {
- return ['name' => $this->name, 'age' => $this->age];
- }
- }
- $zs = new User('张三', 28);
- $list = $zs->info();
- echo '<pre>';
- print_r($list);
- echo '</pre>';
- $ls = new User('李四', 29);
- $list = $ls->info();
- echo '<pre>';
- print_r($list);
- echo '</pre>';
复制代码 3、析构方法的分析
- <?php
- class Person
- {
- public $name;
- public $weight;
- // 构造方法
- public function __construct($name, $weight)
- {
- $this->name = $name;
- $this->weight = $weight;
- echo "{$this->name} 出生了,{$this->weight} 斤!<br>";
- }
- // 析构方法
- public function __destruct()
- {
- echo "{$this->name} 那啥,说·88了!<br>";
- }
- }
- // 对象销毁的分析
- $lili = new Person('lili', 200);
- echo '<pre>';
- print_r($lili);
- echo '</pre>';
- $rose = new Person('rose', 300);
- echo '<pre>';
- print_r($rose);
- echo '</pre>';
复制代码 4、手动销毁的情况
- <?php
- class Person
- {
- public $name;
- public $weight;
- // 构造方法
- public function __construct($name, $weight)
- {
- $this->name = $name;
- $this->weight = $weight;
- echo "{$this->name} 出生了,{$this->weight} 斤!<br>";
- }
- // 析构方法
- // 作用:释放资源,回收垃圾
- // 特点:对象被销毁时自动调用。
- public function __destruct()
- {
- echo "{$this->name} 那啥,说·88了!<br>";
- }
- }
- // 对象销毁的分析
- $lili = new Person('lili', 200);
- echo '<pre>';
- print_r($lili);
- echo '</pre>';
- $rose = new Person('rose', 300);
- echo '<pre>';
- print_r($rose);
- echo '</pre>';
- unset($lili);
- unset($rose);
复制代码
|
|