php学习十三:其他关键字

在php中,其实不止在php中,在其他语言中我们也会常常接触到一些关键字,整理了一下php当中的一下关键字,可能有些不全,希望大家指出来,多多交流,一起进步。

1.final

特性:1.使用final关键字标记的类不能被继承;2.被final关键字标记的方法不能被子类重写,是最终版本
目的:一是为了安全,二是没有必要

final class Final1
{
    public $name;
    final function say(){
        echo "无法调用这个方法以及这个类";
    }

}

  

2.const(成员常量):定义一些固定不变的值

命名规则,是一个公共的,所以用关键字const,后面不能加$
用self来调用这个常量,但是不能更改

class Const1
{
    const base=100;
    function show(){
        self::base; //base永远是100
    }
}

  

3.instanceof用于检测当前的实例是否属于某一个类的类型

代码:下面的One类为父类,Two为子类,继承了父类

$one = new One();
$two = new Two();
echo $one instanceof One;

echo $one instanceof Two;

echo $two instanceof One;

  

4.static静态方法

属于类的方法和属性,需要用类去调用,全局都可以调用,不用去实例化对象

class Static1
{
    static $name = "fangming";
    public function show(){
        echo self::$name;  //self关键字相当于本类,不能用this
    }
}
echo Static1::$name;

  

5.特别补充:获取实例对象

有时候一个类里面的属性都是私有的,初始化的__construct函数都是私有的,这个时候就需要用到静态方法来获取实例了,具体代码如下

class Singleton
{
    static  $instance=null;
   
    private  function  __construct()
    {
    }


    //获取单例对象
    public  static function  getInstance(){

        if(is_null(self::$instance)){
            self::$instance=new Singleton ();
        }

        return self::$instance;
    }
}
Singleton::getInstance();

  

原文地址:https://www.cnblogs.com/mmykdbc/p/6648192.html