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将另一个修改别名的方法引入。

  • 相关阅读:
    decode函数
    自我介绍
    语法》第六章 数组
    语法》第二章 数据类型
    语法》第四章 字符串
    语法》第七章 函数
    取模和取余的区别
    语法》第五章 对象
    语法》第三章 数值
    语法》第一章 基本语法
  • 原文地址:https://www.cnblogs.com/mentalidade/p/7058528.html
Copyright © 2011-2022 走看看