面向对象static静态的属性和方法的调用

Posted CoKeny

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象static静态的属性和方法的调用相关的知识,希望对你有一定的参考价值。

<?php
header("content-type:text/html;charset=utf-8");
class Human{
 static public $name = "小妹";
 public $height = 180;
 static public function tell(){
 echo self::$name;//静态方法调用静态属性,使用self关键词
 //echo $this->height;//错。静态方法不能调用非静态属性
//因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象
 }
 public function say(){
 echo self::$name . "我说话了";
 //普通方法调用静态属性,同样使用self关键词
 echo $this->height;

 }
}
$p1 = new Human();
$p1->say(); 
$p1->tell();//对象可以访问静态方法
echo $p1::$name;//对象访问静态属性。不能这么访问$p1->name
//因为静态属性的内存位置不在对象里
Human::say();//错。say()方法有$this时出错;没有$this时能出结果
//但php5.4以上会提示
?>

 

以上是关于面向对象static静态的属性和方法的调用的主要内容,如果未能解决你的问题,请参考以下文章

面向对象static静态的属性和方法的调用

PHP面向对象关键词static self

面向对象中静态方法和属性的理解

036_面向对象_09_static变量和方法

PHP中静态(static)调用非静态方法详解

Java面向对象详解-下