zoukankan      html  css  js  c++  java
  • php构造方法(函数)基础

    什么是构造函数呢?在回答这个问题之前,我们来看一个需求:我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就指定这个对象的年龄和姓名,该怎么做?

    面试题:这里可以说成构造函数的作用就是用来完成属性的初始化

    构造函数的基本介绍

    基本语法

    class  类名{

    //构造函数

    访问修饰符 function  __construct(形参列表){

    //可以对成员属性进行初始化.

    }

    }

    说明

    (1) 构造函数的访问修饰符可以是 public , protected, private , 一般情况下是public ,默认就是public

    (2) __construct 是关键字,不能修改, __ 是两个_ 下划线。

    (3) 构造函数没有返回值, 即没有return

    (4) 构造函数是系统调用的,程序员不能显示调用

    案例(代码展示)

    <?php
        header('content-type:text/html;charset=utf-8');
        //构造函数
    
        class Person{
            
            public $name;
            public $age;
            public $food;
    
            //构造函数
            public function __construct($in_name, $in_age, $in_food){
                
                echo '<br> ' . $in_name . ' ' . $in_age;
                //将输入的参数,赋值给成员属性
                // $this 表示当前对象, 谁调用我,$this就指向哪个对象
                $this->name = $in_name;
                $this->age = $in_age;
                $this->food = $in_food;
    
                //打印一下$this 这个值
                echo '<pre> 在构造函数中 ';
                var_dump($this);  //查看这个$this是个什么鬼        
            }
        }
    
        //下面这句话,就会让系统自动的调用 构造函数
        $p1 = new Person('白骨精', 1000, '小孩');
    
        echo '<pre>';
        var_dump($p1);

    构造函数的细节和注意事项

    *构造函数没有返回值,即没有return, 就算写了也没有用处

    *在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化

    *构造函数的作用是完成对成员属性的初始化任务,而不是创建对象本身. 所以以后在oop编程中,需要对成员属性进行初始化,则将这段代码放在构造函数中即可

    *在一个类中,构造函数有且只能有一个, 如果定义多个,就会报错.

     

    默认构造函数

    如果在类中,没有定义构造函数,那么会有一个默认的构造函数,形式如下,举例说明

    l 如何将一个对象的属性输出并显示

    说明: 通过上面的案例,我们了解两个重要的点

    (1) 如何显示成员属性的值

    (2) 深刻理解了$this 的指向当前调用对象的特点.

     

    this的使用注意事项

     

    this这个关键字,只能在类的方法中使用,而不能在类的外部使用.

     

     

     

     

     

     

     

     

  • 相关阅读:
    一些常用的 Git 进阶知识与技巧
    自动充值平台开发进程之联通卡密一最终实现
    自动充值平台开发进程之联通卡密一准备阶段
    自动充值平台开发进程之联通卡密一显示界面
    [注入] 突破 SESSION 0 隔离的远线程注入
    git 撤销 push 提交
    [C#] 获取时间戳(秒/毫秒)
    html判断浏览器是否支持,不支持则输出
    [C#] MD5 加密
    [Windows驱动开发] 进程的pid handle eprocess之间相互转换的方法
  • 原文地址:https://www.cnblogs.com/lsqbk/p/10374579.html
Copyright © 2011-2022 走看看