zoukankan      html  css  js  c++  java
  • php的一些语法

    命名空间:

    一个类为App/Http/Controllers/Controller,则该类的命名空间为App/Http/Controllers,可以通过use关键字导入该类,也可以导入命名空间,但是该命名空间下的函数和常量是不能通过关键字导入的。命名空间解析规则:
    1.对完全限定的函数、类和常量可以直接解析。如/a/b 解析为a/b
    2.对非限定和非完全限定名称的函数、类和常量,会根据当前导入命名空间转换。如a/b/c被导入,new c/d/e(),会被解析为a/b/c/d/e()。
    3.在命名空间内部,对非限定命名空间进行函数调用时,现在当前命名空间下解析,如果查找不到再在全局下面寻找。
    4.在明明空间(如a/b)内部使用非限定和非完全限定名称的类进行调用时,只会在当前命名空间下解析。

    反射:

    后期静态绑定:

    self:会根据所在位置的类决定实例化对象
    static:会根据运行时调用的类来决定实例化对象

    class A {
        public function call() {
            echo "A";
        }
        public function test(){
            self::call();
            static::call();
        }
    }
    
    class B extends A {
        public function call(){
            echo "B";
        }
    }
    
    $b = new B;
    $b->test();
    结果: A B
    

    trait:

    1.当前类的方法会覆盖trait中的方法,而trait中的方法会覆盖基类的方法
    2.多个trait方法之间用逗号分隔。两个trait都插入一个同名的方法会产生一个致命的错误,可以使用insteadof操作符来明确指定使用哪一个方法,或者as将另一个修改别名的方法引入。

  • 相关阅读:
    SQL UNION 和 UNION ALL 操作符
    JavaScript--验证码随机生成
    C#基础 out和ref
    远程连接身份验证错误,又找不到加密Oracle修正
    ASP.Net WebAPI -- 简单实现增删改查
    SpringBoot发送邮箱验证码
    VMware虚拟机安装Linux系统详细教程
    SpringBoot实现登陆拦截
    JavaScript 实例、构造函数、原型对象关系图
    JavaScript创建对象的几种方式总结
  • 原文地址:https://www.cnblogs.com/mentalidade/p/7058528.html
Copyright © 2011-2022 走看看