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

PHP 類屬性 類靜態變量的訪問

編輯:關於PHP編程

php的類屬性其實有兩種,一種是類常量,一種是類靜態變量。兩種容易引起混淆。

如同靜態類方法和類實例方法一樣,靜態類屬性和實例屬性不能重定義(同名),但靜態屬性可以和類常量同名。

<?php 
class test 
{ 
  const constvar='hello world'; 
  static $staticvar='hello world'; 
  function getStaticvar(){ 
     return self::$staticvar; 
  } 
} 
 
$obj=new test(); 
echo test::constvar //輸出'hello world' 
echo test::staticvar //出錯,staticvar 前必須加$才能訪問,這是容易和類常量(per-class常量)容易混淆的地方之一 
echo test::$staticvar //輸出'hello world' 
$str='test'; 
echo $str::$staticvar //出錯,類名在這不能用變量動態化 
echo $str::constvar //出錯原因同上 
 
//在類名稱存在一個變量中處於不確定(動態)狀態時,只能以以下方式訪問類變量 
$obj2=new $str(); 
echo $obj2->getStaticvar(); 
?> 

<?php
class test
{
  const constvar='hello world';
  static $staticvar='hello world';
  function getStaticvar(){
     return self::$staticvar;
  }
}

$obj=new test();
echo test::constvar //輸出'hello world'
echo test::staticvar //出錯,staticvar 前必須加$才能訪問,這是容易和類常量(per-class常量)容易混淆的地方之一
echo test::$staticvar //輸出'hello world'
$str='test';
echo $str::$staticvar //出錯,類名在這不能用變量動態化
echo $str::constvar //出錯原因同上

//在類名稱存在一個變量中處於不確定(動態)狀態時,只能以以下方式訪問類變量
$obj2=new $str();
echo $obj2->getStaticvar();
?>

 

 

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