美工统筹SEO,为企业电子商务营销助力!
php类中的$this,static,final,const,self这几个关头字利用体例
一佰互联网站开辟设想(www.taishanly.com) 宣布日期 2020-04-27 10:44:57 阅读数: 142
本篇文章首要分项了一下对php类中的$this,static,final,const,self这几个关头字利用体例。
$this
$this表现以后实例,在类的外部体例拜候未声名为const及static的属性时,利用$this->value="phpernote";的情势。罕见用法如:
$this->属性
$this->体例
举比方下:
<?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.taishanly.com");$myclass->printName();//输入:I Like www.taishanly.com?>
在类外面挪用以后类的属性和体例有三种体例,别离是self、parent、$this,这三个关头字的区分是:self用来指向以后的类;parent用于指向以后类的父类,能够利用该关头字挪用父类的属性和体例;$this用来在类体内挪用自身的属性和体例。
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这几个关头字利用体例,但愿大师喜好。