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

  • 相关阅读:
    SSH不超时
    python基本数据类型
    EF6.0批量插入
    AutoMapper的使用
    Json序列化,date类型转换后前端显示错误的解决方案
    Ajax跨域
    【转】C#多线程Lock使用
    Mongo集合操作Aggregate
    Json操作(DynamicJson)
    实用的VS工具
  • 原文地址:https://www.cnblogs.com/mentalidade/p/7058528.html
Copyright © 2011-2022 走看看