php final static const成员属性用法
发布:smiling 来源: PHP粉丝网 添加日期:2014-05-21 09:51:50 浏览: 评论:0
首先来说说final
1.final不能用来修饰成员属性
2.final只能修饰类和方法
作用:被修饰的类不能被子类所继承,被修饰的方法不能被子类的方法覆盖
- <?PHP
- final class BaseClass {
- public function test() {
- echo "BaseClass::test() calledn";
- }
- final public function moreTesting() {
- echo "BaseClass::moreTesting() calledn";
- }
- }
- class ChildClass extends BaseClass {
- public function moreTesting() {
- echo "ChildClass::moreTesting() calledn";
- }
- }
- // Results in Fatal error: Cannot override final method BaseClass::moreTesting()
- ?>
然后来说说static
1.static用来修饰成员属性和成员方法,但不能用来修饰类
2.用static修饰的成员属性可以被同一个类的所有对象共享
3.静态的数据是存在 内存中的 数据段中(初始化静态段)
4.静态的数据是在类在第一次加载时,分配到内存中的
5.什么是类被加载?只要在程序中使用到这个类(有这个类名出现)
6.静态的成员属性都要用类名去访问,不用创建对象,不用对象去访问;在类里边可以用self代表本类($this)
7.静态方法,不能访问非静态的成员属性(但是,在非静态方法却能访问静态的成员属性),非静态的成员属性,必须用对象访问,在内部访问非静态成员属性,用$this.
8.如果你确定一个方法中不需使用到非静态的成员属性,则可以将这个方法声明为静态方法,不需实例化对象,就可以访问
例子,演示需要静态变量的例子
- <?PHP
- function Test()
- {
- $w3sky = 0;
- echo $w3sky;
- $w3sky++;
- }
- ?>
静态变量与递归函数
- <?PHP
- function Test()
- {
- static $count = 0;
- $count++;
- echo $count;
- if ($count < 10) {
- Test();
- }
- $count--;
- }
- ?>
注:静态变量可以按照上面的例子声明,如果在声明中用表达式的结果对其赋值会导致解析错误.
例子,声明静态变量
- <?PHP
- function foo(){
- static $int = 0;// correct
- static $int = 1+2; // wrong (as it is an expression)
- static $int = sqrt(121); // wrong (as it is an expression too)
- $int++;
- echo $int;
- }
- ?>
最后来说说const
1.它只能用来修饰成员属性
2.在类中声明常量必须使用const
3.访问方式和访问静态成员属性一样(类外使用 类名::成员属性,类里边则使用self::成员属性)
4.常量一定要在声明的时候就给初始值
- <?php
- class say_const{
- const CHARSET=”中国”;
- publice function say_hello(){
- echo slef::CHARSET;
- }
- }
- $const1=new say_const()’
- $const1->say_hello();
- ?>
常量只能包含标量数据(boolean,integer,float 和 string),不要定义 resource常量.
可以用函数 constant() 来读取常量的值.get_defined_constants()可以获得所有已定义的常量列表.
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 “CONSTANT”),此时将发出一个 E_NOTICE 级的错误.
Tags: final static const 属性 成员
- 上一篇:php 继承详解
- 下一篇:php static 变量的例子
相关文章
- ·php中$this、static、final、const、self的用法(2014-02-10)
- ·php面向对象编程学习笔记(2014-03-10)
- ·php面向对象 static、 const、final关键字的使用(2014-03-28)
- ·PHP 面向对象 final类与final方法(2014-09-09)
- ·php中接口、抽象类、Final、Static例子(2016-07-27)
- ·PHP面向对象的进阶学习(抽像类、接口、final、类常量)(2021-05-10)
- ·PHP面向对象之旅:static变量与方法(2014-01-17)
- ·php static 变量的例子(2014-06-04)
- ·PHP static静态局部变量和静态全局变量总结(2014-06-14)
- ·php中static 静态变量和普通变量的区别(2016-08-18)
- ·区别PHP中的const,static,public,private,protected(2020-02-22)
- ·PHP面向对象之旅:深入理解static变量与方法(2020-08-23)
- ·php面向对象中static静态属性和静态方法的调用(2021-05-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)