Home >Backend Development >PHP Problem >How to call static attributes and static methods in php

How to call static attributes and static methods in php

王林
王林forward
2020-08-13 17:51:213212browse

How to call static attributes and static methods in php

Static properties and methods (including static and non-static) have only one location in memory (instead of static properties, there are as many properties as there are instantiated objects).

(Recommended tutorial: php graphic tutorial)

Example:

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以上会提示

?>

(Recommended video tutorial: php video tutorial )

Summary:

(1) Static properties can be called without instantiation. Because the static attributes are stored in the class, the calling method is "class name::property name";

(2) Static methods can be called without instantiation. Same as above

(3) Static methods cannot call non-static properties. Because non-static properties need to be instantiated and stored in the object;

(4) Static methods can call non-static methods using the self keyword. In PHP, after a method is called self::, it is automatically converted into a static method;

The above is the detailed content of How to call static attributes and static methods in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete