在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->.
另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this.
$this实例代码如下:
- <?php
-
- class test_this{
- private $content;
-
- function __construct($content){
- $this->content= $content;
- }
- function __destruct(){}
-
- function printContent(){
- echo $this->content.'<br />';
- }
- }
- $test=new test_this('北京欢迎你!');
- $test->printContent();
::使用方法实例代码如下:
-
- class test_parent{
- public $name;
- function __construct($name){
- $this->name=$name;
- }
- }
- class test_son extends test_parent{
- public $gender;
- public $age;
- function __construct($gender,$age){
- parent::__construct('nostop');
- $this->gender=$gender;
- $this->age=$age;
- }
- function __destruct(){}
- function print_info(){
- echo $this->name.'是个'.$this->gender.',今年'.$this->age.'岁'.'<br />';
- }
- }
- $nostop=new test_son('女性','22');
- $nostop->print_info();
使用self::$name的形式.注意的是const属性的申明格式,const PI=3.14,而不是const $PI=3.14
实例代码如下:
- class clss_a {
-
- private static $name="static class_a";
-
- const PI=3.14;
- public $value;
-
- public static function getName()
- {
- return self::$name;
- }
-
- public static function getName2()
- {
- return self::$value;
- }
- public function getPI()
- {
- return self::PI;
- }
-
-
- }
还要注意的一点是如果类的方法是static的,他所访问的属性也必须是static的.
在类的内部方法访问未声明为const及static的属性时,使用$this->value ='class_a';的形式.