麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PHP > 正文

php類中的$this,static,final,const,self這幾個關鍵字使用方法

2024-05-04 23:40:55
字體:
來源:轉載
供稿:網友
php類中的$this,static,final,const,self這幾個關鍵字在項目中經常會用的到,通過本文給大家分享this,static,final,const,self這幾個關鍵字使用方法,對此感興趣的朋友一起學習吧
 

本篇文章主要分項了一下關于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.companysz.com");$myclass->printName();//輸出:I Like www.companysz.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這幾個關鍵字使用方法,希望大家喜歡。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 激情久久一区二区 | av在线免费播放 | 51国产偷自视频区视频小蝌蚪 | 欧美中文日韩 | 黄视频网站免费观看 | 国产69精品久久99不卡免费版 | 久久精品国产一区二区电影 | 久久综合av| 色视频在线 | 亚洲午夜1000理论片aa | caoporn国产一区二区 | 综合国产一区 | 久久精品中文字幕一区二区 | 久久精品视频首页 | 亚洲人成网站在e线播放 | 国产欧美一区二区三区免费看 | 精品中文字幕视频 | 中国美女一级黄色大片 | 日韩在线激情 | 国产系列 视频二区 | 欧美国产精品一区二区 | 欧美一级三级在线观看 | 一二区电影| 久久久一区二区三区精品 | 欧美日韩成人一区二区 | 国产精品视频在线观看免费 | 夜夜看 | 精品国产99久久久久久宅男i | 精品国产91久久久久久浪潮蜜月 | 日本aaaa片毛片免费观蜜桃 | 高清国产午夜精品久久久久久 | 国产精品视频一区二区三区四区五区 | 手机av免费在线 | 毛片视频网站在线观看 | 欧美一级电影网 | 毛片网站视频 | 久久精品免费国产 | 久久精品亚洲一区 | 91看片欧美| av免费在线网 | free japan xxxxhdsex69|