分享

PHP丨类与对象·魔术方法

 CKO养成计划 2020-09-27

PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为"魔术方法"(Magic methods)

在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。

我们暂可以理解为,魔术方法就是一种实例化之后,不需要手动调用就能够执行的方法

__construct()  构造函数


PHP 5 允许开发者在一个类中定义一个方法作为构造函数。

具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。

接着上一期PHP丨类与对象中的代码:

<?php 

class name{

    public $s1 = 0; 

    public $s2 = 1;

    public function __construct(){      //构造函数

        echo 123;                                 //输出

    }

    public function s1(){ 

        $this->s2();

    } 

    public function s2(){ 

        echo 's2'; 

    }

}

$name = new name();                        // ① 实例化类得到$name对象

?>

浏览器输出效果:

实例化类的同时传参数

代码:

<?php 

class name{

    public $s1 = 0; 

    public $s2 = 1;

    public function __construct( $a, $b ){    // ③ 构造方法定义、接收参数

        var_dump( $a, $b );                            //输出

    }

    public function s1(){ 

        $this->s2();

    } 

    public function s2(){ 

        echo 's2'; 

    }

}

$name = new name( 'a', 'b' );                    // ② 实例化同时传递参数a与b

?>

浏览器输出效果:

传参后把结果赋给两个类属性

<?php 

class name{

    public $s1 = 0; 

    public $s2 = 1;

    public function __construct( $a, $b ){

        $this->s1 = $a;     // ④ 将上一行代码$a接收的值赋给s1属性

        $this->s2 = $b;     // ④ 将上一行代码$2接收的值赋给s2属性

    }

    public function s1(){  // ⑥ 执行s1方法

        $this->s2();            // ⑦ 通过this语法调用s2方法

    } 

    public function s2(){ 

        echo $this->s1;     // ⑧ 在s2内部输出s1属性

    }

}

$name = new name( 'a', 'b' );

$name->s1();                 // ⑤ 调用s1的方法

?>

浏览器输出效果:

构造方法只是魔术方法的一种。

魔术方法都是在特定条件下能够自动执行的一种方法。

其它魔术方法大家可以参考官方手册:【PHP 手册】-【语言参考】-【类与对象】-【魔术方法】

This is not the end.
 It is not even the beginning of the end. 

But it is,
 perhaps, the end of the beginning.

更多分享


三小时学会 HTML 网页编辑

HTML丨语言简介

HTML丨标签和属性

HTML丨基本结构与常用格式标签

HTML丨网页编辑实战

三小时学会 CSS 网页美化

CSS丨简介与引入方式

CSS丨选择器

CSS丨样式

CSS丨布局

CSS丨网页美化实战

PHP 网站开发

Web 网站的工作原理

开发前的准备工作

MAC 系统怎么搭建自带的 PHP 开发环境

PHP丨第一个 PHP 程序

PHP丨变量

PHP丨数据类型

PHP丨数组

PHP丨数据的发送与接收

PHP丨运算符

PHP丨流程控制

PHP丨函数的基础语法

PHP丨类与对象

效率工具

AutoCAD 2018附软件+注册机

AdobeCC 2018 破解全系列(WIN+MAC)

Office 2019 早期预览版(免激活)

免费看 VIP 视频,高速下载百度云,听高清网易云...你只差一个小插件

平面设计自学指南

小众电影

美国往事丨如果你的一生只能看一部电影的话,那就看这一部吧

蝴蝶丨我比你年轻,我还有余力等你(les题材)

东京夜空最深蓝丨活着吧,要活到死才对

荒野生存丨我想那么年轻,干净,那么寂寞地活着,直到可以突然失踪在马路上的那一天

小程序开发

0 基础要怎么自学小程序开发

小程序开发环境搭建和布署

微信开发者工具的认识

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多