Heim  >  Artikel  >  Backend-Entwicklung  >  PHP 类属性 类静态变量的访问_PHP教程

PHP 类属性 类静态变量的访问_PHP教程

WBOY
WBOYOriginal
2016-07-14 10:12:04995Durchsuche

php的类属性其实有两种,一种是类常量,一种是类静态变量。两种容易引起混淆。

如同静态类方法和类实例方法一样,静态类属性和实例属性不能重定义(同名),但静态属性可以和类常量同名。

<?php 
class test 
{ 
  const constvar=&#39;hello world&#39;; 
  static $staticvar=&#39;hello world&#39;; 
  function getStaticvar(){ 
     return self::$staticvar; 
  } 
} 
 
$obj=new test(); 
echo test::constvar //输出&#39;hello world&#39; 
echo test::staticvar //出错,staticvar 前必须加$才能访问,这是容易和类常量(per-class常量)容易混淆的地方之一 
echo test::$staticvar //输出&#39;hello world&#39; 
$str=&#39;test&#39;; 
echo $str::$staticvar //出错,类名在这不能用变量动态化 
echo $str::constvar //出错原因同上 
 
//在类名称存在一个变量中处于不确定(动态)状态时,只能以以下方式访问类变量 
$obj2=new $str(); 
echo $obj2->getStaticvar(); 
?> 

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

$obj=new test();
echo test::constvar //输出&#39;hello world&#39;
echo test::staticvar //出错,staticvar 前必须加$才能访问,这是容易和类常量(per-class常量)容易混淆的地方之一
echo test::$staticvar //输出&#39;hello world&#39;
$str=&#39;test&#39;;
echo $str::$staticvar //出错,类名在这不能用变量动态化
echo $str::constvar //出错原因同上

//在类名称存在一个变量中处于不确定(动态)状态时,只能以以下方式访问类变量
$obj2=new $str();
echo $obj2->getStaticvar();
?>

 

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477225.htmlTechArticlephp的类属性其实有两种,一种是类常量,一种是类静态变量。两种容易引起混淆。 如同静态类方法和类实例方法一样,静态类属性和实例属...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Php面试题_PHP教程Nächster Artikel:php编码规范个人小结_PHP教程