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

WBOY
풀어 주다: 2016-07-14 10:12:04
원래의
938명이 탐색했습니다.

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的类属性其实有两种,一种是类常量,一种是类静态变量。两种容易引起混淆。 如同静态类方法和类实例方法一样,静态类属性和实例属...
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!