2012-07-24 65 views
-1
class ab{ 
    public static $abc = 34; 
    public static function asd(){ 
     $a = "abc"; 
     echo self::$a; //output 34; 
    } 
} 
ab::asd(); 

我想找到一種方法來指向一個類的靜態成員。就像上面的例子,我怎麼能做這個工作?可以指出一個PHP類的靜態成員嗎​​?

+0

self :: $ a ='abc'; – yent 2012-07-24 11:44:20

+3

你試過了什麼?你得到的錯誤是什麼?你應該能夠指出那樣的方法。 – dpitkevics 2012-07-24 11:44:22

回答

2

如果你訪問一個靜態變量,語法如下:

MyClass::$variable 

所以,你在做什麼缺乏間接:

echo self::$$a; //output 34; 

這適用於常規變量以同樣的方式:

$variable 

and with indirection:

$name = "variable"; 
$$name 

針對您的下一個問題的建議:嘗試在您的問題中更加精確。要注意以下幾點:

  • 你有什麼
  • 它應該做的
  • 究竟是什麼呢
  • ,如果你知道

這有助於提供相關的答案在哪裏出現錯誤而不是參與元討論來澄清你的問題。

+0

很高興知道,從來沒有見過雙人前$,謝謝。 – 2012-07-24 11:59:57

+0

@WouterH:你可以對常規變量做同樣的操作:'$ name =「my_variable」; $$ name' – phant0m 2012-07-24 12:01:21

+0

我會用'eval()'函數做一些事情,但這樣更簡單:) – 2012-07-24 12:03:27