php类中的$this,static,final,const,self这几个关键字使用方法
来源:互联网 发布:apache ant 1.9.4 编辑:程序博客网 时间:2024/05/05 19:17
本篇文章主要分项了一下关于php类中的
举例如下:
代码如下
<?phpclass MyClass{ private $name; public function __construct($name){ $this->name=$name; } public function getname(){ return $this->name; } public function printName(){ echo $this->getname(); }}$myclass= new MyClass("I Like www.111cn.net");$myclass->printName();//输出:I Like www.111cn.net?>
在类里面调用当前类的属性和方法有三种方法,分别是self、parent、
static
关键字可以是self(在类内部调用静态成员时所使用)静态成员所在的类名(在类外调用类内部的静态成员时所使用)
声明一个静态变量如下:
static $val=”;
只存在于函数作用域的变量,函数执行之后变量的值不会丢失,只会初始化一次,初始化静态变量不能使用表达式,不用全局变量代替是因为全局变量会被所有函数访问容易造成维护不宜。
在类中使用static有两种主要用途、定义静态成员和定义静态方法。静态成员只保留一个变量的值,这个值对所有实例都是有效的,如下:
代码如下
<?phpclass MyObject{ public static $myStaticVar=0; function myMethod(){ self::$myStaticVar+=2; echo self::$myStaticVar; }}$instance1=new MyObject();$instance1->myMethod();$instance2=new MyObject();$instance2->myMethod();
//结果将分别打印2、4
代码如下
<?phpclass Book{ static $num=0; public function showMe(){ echo"您是滴".self::$num."位访客"; self::$num++; }}$book1=new Book();$book1->showMe();echo"<br>";$book2=new Book();$book2->showMe();echo"<br>";echo"您是滴".Book::$num."位访客";?>
结果将是:
您是滴0位访客
您是滴1位访客
您是滴2位访客
另外需要注意的是如果类的方法是static的,他所访问的属性也必须是static的。
final
PHP final关键字可以修饰类同样可以修改类中的方法,但它们的作用是差不多的,即如果你使用了final关键字来修饰了,那么这个被修饰的类或者方法将不能被扩展或者继承。你只能老老实实去引用它。如果你在类前面使用了final,这就是说明这个类不能使用继承;如果你在方法前使用了PHP final关键字,这就是说明这个方法不能被覆盖。道理就是这么简单,让我们也看个简单的示例吧。
最终的类和方法,不能继承,该关键字修饰的方法不能被重写。一般用法如下:
final class MyClass{//此类将不允许被继承
final function fun1(){……}//此方法将不允许被重写
}
例
代码如下
< ?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() ?>
const
在类的内部方法访问已经声明为const及static的属性时,需要使用self::$name的形式调用。举例如下:
代码如下
<?phpclass clss_a{ private static $name="static class_a"; const PI=3.14; public $value; public static function getName(){ return self::$name; } //这种写法有误,静态方法不能访问非静态属性 public static function getName2(){ return self::$value; } public function getPI(){ return self::PI; }}
注意const属性的申明格式是const PI=3.14,而不是const $PI=3.14。
self
self表示类本身,指向当前的类。通常用来访问类的静态成员、方法和常量。
- php类中的$this,static,final,const,self这几个关键字使用方法
- php面向对象类中的$this,static,final,const,self及双冒号 :: 这几个关键字使用方法。
- php关键字:final self static const
- php面向对象(关键字 :final self static const)
- java中几个关键字 this static final
- PHP类与对象 final static const abstract 关键字
- php入门学习-----const&static&final关键字
- JAVA中的关键字static,final和const
- Java中的this,final,static关键字
- PHP中的self、static、parent关键字
- C++中的几个关键字:static,const,inline
- PHP 的var const static define self $this 使用详解
- javaSE学习笔记之几个关键字this、super、final、static
- Java中几个关键字 static final this super
- php面向对象之final static const关键字的使用
- static this super final 关键字
- static, super, final, this关键字
- this super static final关键字
- ubuntu desktop (Gnome or KDE)
- nyoj86 找球号(一) set容器和二分 两种解法
- epoll 详解
- kbengine引擎-忙里偷闲,kbe服务器架设及demo运行教程
- 抽象工厂模式在android中使用
- php类中的$this,static,final,const,self这几个关键字使用方法
- Android文件或文件夹内容改变监听器(FileObserver)
- SVM-SVC学习心得
- Win7系统下安装Ubuntu 10.04双系统
- Android中Luncher掌控图片的显示
- 2.练习,fork和execve的使用。
- java.lang.IllegalStateException: Fragment EmojiconRecentsGridFragment{b6867778 id=0x7f090081} is not
- 学术例会记录
- 浅读正则表达式