程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 如何使用PHP靜態方法與屬性

如何使用PHP靜態方法與屬性

編輯:關於PHP編程

眾所周知,OOP的目的就是了把一個次編寫代碼,復制復制再復制,繼承繼承再繼承的合理利用每一次的工作,同時也方便代碼管理。哪個環節出錯了就去找哪個環節。但是有時候我們寫的類,最終發現它只使用了一次,並沒有生成多個的實例。這個時候再去new, 不僅影響效率,代碼也顯得不夠簡潔。

所以非常感性的php,為我們提供了一種便捷高效的方法 static 有了它以後這些統統不再是問題。

下面鄙人為大家講講static 的使用方法和特性。

hello world:

class hw{
    public static function hi(){
       return 'Hello World!!!';
    }
}
 
echo hw::hi();  
class hw{
    public function hi(){
       return 'Hello World!!!';
    }
}
 
echo hw::hi();  

從上面的例子可以看出了,使用了static和不使用static屬性以後可以直接使用::方法從外面直接調用,但是為了效率和其他方面因素,還是建議使用static 來限制。

static 類內部調用方法

class foo{
 
private static function c(){
  return 'abcd';
}
 
public static function a(){
  echo self::c();
}
 
}
foo::a();  

使用了static 關鍵字來限制方法是必須使用self:: 在本類內部引用,上面的例子已經將的很清楚了。

static 屬性

class foo{
public static $a;
public static function a(){
  self::$a='abcd';
}
}
foo::a();
echo foo::$a;  

我們同樣可以使用static關鍵字來限制變量 這個時候變量不會一直保持上一次負值時候的值。

static 繼承與使用

class foo{
public static $a;
public static function a(){
  return 'abcd';
}
}
class oo extends foo{
public static  function a(){
  echo '1234';
}
}
oo::a();  

static 的繼承和普通類的繼承方法一樣,並沒有太大的區別。

class foo{
public static $a;
public static function a(){
  return 'abcd';
}
}
class oo extends foo{
public static  function aa(){
  echo parent::a();
}
}
oo::aa();  

只是使用的時候有寫區別,必須是parent::方法來引用父類的方法,並不能直接self::來使用父類的方法,如下例子,則不會顯示任何值:

class foo{
public static $a;
public static function a(){
  return 'abcd';
}
}
 
class oo extends foo{
public static  function aa(){
  echo self::a();
}
}
oo::a();  

再一個簡單的例子

<?php
	class Status {
		public static $ICE = -1;
		public static $WATER = 0;
		public static $VAPOR = 1; 
	}
?>?
<?php
	$exStatus = Status::$ICE;
	if ($exStatus == Status::$ICE)
		echo "Ice";
	else
		echo "Water";
?>  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved