php static是PHP中的一种关键字,使用static关键字即表示该成员为静态成员,在类的加载过程中只会保留一个副本,所有对静态变量进行的操作都会对所有对象起作用。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
php static是什么意思?
PHP中static关键字的作用和区别
PHP中的static与Java等其他面向对象语言不同,实例化出来的一个对象只可以对静态方法进行访问,对静态成员无法访问。
使用static关键字即表示该成员为静态成员,在类的加载过程中只会保留一个副本,所有对静态变量进行的操作都会对所有对象起作用
在PHP中静态变量不能被实例化对象调用,静态方法可以被对象调用
// ----类内部---- // 调用普通成员 this->name; // 调用静态成员 self::name_static; // ----类外部---- // 调用普通成员需要实例化使用 Car c = new Car(); c->name; // 调用静态方法 c::fun() <==> Car::fun() // 调用静态变量 Car::name;
分析一段代码:
class Car { private $name; private static $type = "Car"; function __construct($name) { $this->name = $name; echo "Car " . $name . " has created!\n"; } public static function getType() { echo self::$type . "\n"; } public function getName() { echo "Car name is " . $this->name . "\n"; } function __destruct() { echo "Car " . $this->name . " has destory!"; } }
一个实体类,定义了一个构造函数,一个静态函数,一个普通函数,一个析构函数和一个普通成员变量、一个静态成员变量。
使用PHPunit进行测试
class test extends PHPUnit_Framework_TestCase { public function test_car() { $car = new Car("BMW"); $car::getType(); $car->getName(); } }
可以得到输出:
Car BMW has created! Car Car name is BMW Car BMW has destory!
【推荐学习:PHP视频教程】
以上是php static是什么意思的详细内容。更多信息请关注PHP中文网其他相关文章!