zoukankan      html  css  js  c++  java
  • 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();
    

      

  • 相关阅读:
    net.sf.json.JSONException: There is a cycle in the hierarchy!
    数据源的配置
    java枚举使用详解
    hibernate级联保存,更新个人遇到的问题
    NonUniqueObjectException 问题
    No.2 dotnetcore&docker--数据库等在Docker上的配置
    No.1 dotnetcore&docker--环境搭建
    No.5 dotnetcore&docker--采用Ambry做文件服务器
    No.3 dotnetcore&docker--搭建一个nuget服务器
    关于APM数据采集实例以及Eureka整合的一个想法
  • 原文地址:https://www.cnblogs.com/mmykdbc/p/6648192.html
Copyright © 2011-2022 走看看