萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php中final static $this關鍵字學習筆記

php中final static $this關鍵字學習筆記

在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');
?>

copyright © 萬盛學電腦網 all rights reserved