• 技术文章 >php教程 >php手册

    探讨PHP中OO之静态关键字以及类常量的详解

    2016-06-06 20:31:06原创440

    本篇文章是对php中的静态关键字以及类常量进行了详细的分析介绍,需要的朋友参考下

    闲着没事随便找了点PHP的关于OO的点资料看看,访问控制修饰符,self,parent,const,static几个关键字,服务器空间,箭头操作符(书上也这么叫..即“->”),范围解析操作符(即双冒号“::”),香港服务器,不过觉得这个跟C#语言里的OO很多是一样的,很容易理解不过还是看看理清PHP里的OO思路还是应该的吧。
    --------------------------------------------------------------------------------
    声明静态的类的成员和方法,使它不需要一个类的实例.一个static成员的声明不能通过一个类对象的实例来访问(尽管一个静态方法可以)。
    静态声明必须在可见性声明之后。为了兼容PHP 4,如果没有可见性被声明,那么成员和方法将被当作是已经声明为public。
    由于静态方法可以调用非对象实例,伪变量$this不可以在声明为静态的方法中使用。
    事实上static方法调用形式在编译时被确定。当使用必须要声明的类名时,方法是完全标识和无继承规则的应用。当使用必须要声明的类名时,这种方法就被完全确认,而且没有使用继承的规则。
    如果self已经被声明,那么self就被当前所属的类所解释。也不适用与继承规则。静态属性不能通过箭头操作符->.访问非静态方法,这将产生一个E_STRICT 级的警告。

    复制代码 代码如下:


    class Foo
    { public static $my_static='foo';
    public function staticValue(){ return self::$my_static; }
    }
    class Bar extends Foo
    { public function fooStatic(){ return parent::$my_static; }
    }
    print Foo::$my_static."/n";
    $foo = new Foo();
    print $foo->staticValue()."/n";
    print $foo->my_static."/n";// Undefined "Property" my_static
    // $foo::my_static is not possible
    print Bar::$my_static."/n";
    $bar = new Bar();
    print $bar->fooStatic()."/n";
    ?>


    复制代码 代码如下:


    //静态方法实例(Static method example)
    class Foo
    { public static function aStaticMethod() { }
    }
    Foo::aStaticMethod();
    ?>


    可以在每个基类中定义常量使它保持不变。在你不使用$符号去声明或使用它时,常量不同于普通变量。就象静态成员,虚拟主机,常量值不能通过对象的实例来访问(而应使用$object::constant). 常量值必须是一个常量表达式,而不是一个变量,一个类的成员,一个数学表达式或函数调用的结果。

    复制代码 代码如下:


    class MyClass
    { const constant = 'constant value';
    function showConstant() { echo self::constant."/n"; }
    }
    echo MyClass::constant."/n";
    $class = new MyClass();
    $class->showConstant();// echo $class::constant; is not allowed
    ?>

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:静态关键字 类常量
    上一篇:深入php self与$this的详解 下一篇:PHP5常用函数列表(分享)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 一个odbc连mssql分页的类_php基础• php后台多用户权限组思路与实现程序代码分享• phpcms定时发布文章解决办法• php文件上传简单实现方法,• php5.4以下版本json不支持不转义内容中文的解决方法,
    1/1

    PHP中文网