php中final static $this關鍵字學習筆記
來源:程序員人生 發布時間:2013-11-14 16:31:05 閱讀次數:3669次
在php中final static $this關鍵字主要是用在類中或對象中,下面我來把我學習final static $this筆記記錄下來,有需要了解的朋友可參考參考.
final關鍵字
php final關鍵字用來在一個函數或者類名稱前面,表明該函數不能被重寫或者該類不能被繼承.
1、final方法不能被重寫.
如果不希望類中某個方法被子類重寫,只需要在這個方法前加上關鍵字final,即設置final方法.
實例代碼如下:
- <?php
- class ex1{
- final function fn1(){
- return "php";
- }
- }
- class ex2 extends ex1{
- function fn1(){
- return "html";
- }
- }
- $p= new ex2();
- echo $p->fn1();
- ?>
加了final關鍵字的方法不能被重寫,運行出錯.
2、final類不能被繼承.
被聲明了final的類不能被繼承,否則出錯.
實例代碼如下:
- <?php
- final class ex1{
- private $name;
- }
- class ex2 extends ex1{
- private $age;
- }
- ?>
static關鍵字
php static關鍵字不僅可以用來聲明一個靜態變量,在類中同樣可以聲明靜態的屬性或者方法,成為“類屬性”或“類方法”.
1、聲明了靜態的屬性和方法后,在類中不能用$this關鍵字來引用,可以使用下面兩種方法引用:
在類中:self::靜態成員名稱
在類外:類名稱::靜態成員名稱
2、訪問該類時,可不必實例化,直接使用類名稱::靜態成員名稱的格式.
靜態屬性實例:
實例代碼如下:
- <?
- class user{
- private static $count = 10;
- private static $sum=1;
- public function __construct(){
- for($i=1;$i<11;$i++){
- self::$sum = self::$sum * self::$count;
- self::$count--;
- }
- }
- public function getCount(){
- return self::$sum;
- }
- }
- $user1 = new user();
- echo $user1->getCount();
- ?>
靜態方法實例:
實例代碼如下:
- <?
- class Math{
- public static function sum($num1,$num2){
- return $num1 + $num2;
- }
- public static function product($num1,$num2){
- return $num1 * $num2;
- }
- }
- $a = 88;
- $b = 100;
- echo "兩數之和為: ";
- echo "<br>";
- echo Math::sum($a,$b);
- echo "<P>";
- $a = 66;
- $b = 88;
- echo "兩數之積為: ";
- echo "<br>";
- echo Math::product($a,$b);
- ?>
$this關鍵字
為了解決php類和對象中變量與屬性的命名沖突和不確定性問題,引入了”$this”關鍵字來調用當前的對象.
在類中調用當前對象的屬性和方法,必須使用”$this->”關鍵字;$this在構造函數中指該構造函數所創建的新對象;方法內的局部變量不屬于對象,不使用$this關鍵字取值.
使用$this關鍵字,我們可以在類中調用對象屬性或者方法.
1、調用變量
實例代碼如下:
- <?php
- class user{
- private $n;
- function __construct(){
- $name="Mike";
- echo $this->n=$name;
- }
- }
- $p=new user();
- ?>
2、調用方法
實例代碼如下:
- <?php
- class cal{
- public function sum($a,$b){
- return $a+$b;
- }
- public function prt($a,$c){
- return $a*$c;
- }
- public function result($a,$b,$c){
- $a=$this->sum($a,$b);
- return $this->prt($a,$c);
- }
- }
- $c=new cal();
- echo "(2+3)*10= " .$c->result('2','3','10');
- ?>
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈