zoukankan      html  css  js  c++  java
  • php面向对象

    <?php
    class person{
        public $name = '';
        function say($name){
            echo $name."说话";
        }
    }
    //实例化对象
    $zs = new person();
    //调用属性和方法
    $zs->name = "张三";
    $zs->say($zs->name);

    类中成员:属性、方法、类常量

    然后分一般属性、一般方法 public 不写默认就是public

       静态属性、静态方法 static

    静态类调用:

    属性调用:类::$静态属性名;

    方法调用:类::静态方法名();

    $this代表当前所属类的当前对象(谁调这个方法,$this就是谁),在静态方法中不能使用

    静态方法中不应调用非静态方法

    self代表当前类,通常只能在某个类的某个方法内部代表该类的名称

    class s2{
        public $v1 = 1;
        static function getNew(){
            return new self;  //self代表当前类,new self代表当前类的一个对象
        }
    }
    echo "<hr />";
    $obj2 = s2::getNew();
    var_dump($obj2);

    构造函数

    __construct()

    如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配(一 一对应)

    class p{
        public $name = "匿名";
        public $age = 18;
        function intro(){
            echo "<br />hi,大家好我叫".$this->name;
            echo ",今年".$this->age."岁";
        }
        function __construct($n,$a){
            $this->name = $n;
            $this->age = $a;
        }
    }
    $p2 = new p('李四',22);
    $p2->intro();

    class p{
        public $name = "匿名";
        public $age = 18;
        function intro(){
            echo "<br />hi,大家好我叫".$this->name;
            echo ",今年".$this->age."岁";
        }
        function __construct($n,$a){
            $this->name = $n;
            $this->age = $a;
        }
    }
    $p2 = new p('李四',22);
    $p2->intro();

    构造方法是“创建”对象的时候会自动调用。

    析构方法是“销毁”对象的时候会自动调用。

  • 相关阅读:
    metasploit-shellcode生成
    项目中遇到了docker、PaaS、k8s,它们之间的关系是怎么样的呢?
    docker是什么?它里面放着什么?
    java排序算法总结
    java类加载机制
    JVM垃圾回收算法
    跳出循环几种方式
    数据库分片分库常见问题解决方案
    数据库优化
    SQL生命周期
  • 原文地址:https://www.cnblogs.com/liangdong/p/10370833.html
Copyright © 2011-2022 走看看