static 关键字的应用【代码 6-8】 static.php
2016-05-10 09:42
651 查看
提示
如果一个类的属性或者方法被 private 关键字修饰,则该属性或者方法不能
被继承。如果一个属性或者方法被protected 关键字修饰,则它在类的外部不可
见,但是可以被继承。
6.3.6 static 关键字
static 关键字适用于允许在未经初始化类的情况下调用类的属性和方法。该方法类似于前
面介绍的“::”运算符。
实例 6-7 使用static 关键字
本实例介绍static 关键字的应用,如代码6-8 所示。
【代码 6-8】 static.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> static2.php </title>
<meta charset="UTF-8">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<?php
class Foo //定义基类
{
//使用static 关键字定义变量
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
class Bar extends Foo //创建基类
{
public function fooStatic() {
return parent::$my_static; //返回基类的变量$my_static
}
}
//打印基类的$my_static 变量
//虽然没有创建类实例,但是可以直接访问static 变量
print 'Foo::$my_static 结果为'.Foo::$my_static . "<br>";
$foo = new Foo(); //创建基类实例
print $foo->staticValue() . "<br>"; //通过方法放回static 变量
print $foo->my_static . "<br>"; // $my_static 为未定义的属性,所以为空
//通过子类访问$my_static
print Bar::$my_static . "<br>";
$bar = new Bar();
print $bar->fooStatic() ; //返回父类的static 变量
?>
</body>
</html>
Foo::$my_static 结果为foo
foo
foo
foo
如果一个类的属性或者方法被 private 关键字修饰,则该属性或者方法不能
被继承。如果一个属性或者方法被protected 关键字修饰,则它在类的外部不可
见,但是可以被继承。
6.3.6 static 关键字
static 关键字适用于允许在未经初始化类的情况下调用类的属性和方法。该方法类似于前
面介绍的“::”运算符。
实例 6-7 使用static 关键字
本实例介绍static 关键字的应用,如代码6-8 所示。
【代码 6-8】 static.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> static2.php </title>
<meta charset="UTF-8">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<?php
class Foo //定义基类
{
//使用static 关键字定义变量
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
class Bar extends Foo //创建基类
{
public function fooStatic() {
return parent::$my_static; //返回基类的变量$my_static
}
}
//打印基类的$my_static 变量
//虽然没有创建类实例,但是可以直接访问static 变量
print 'Foo::$my_static 结果为'.Foo::$my_static . "<br>";
$foo = new Foo(); //创建基类实例
print $foo->staticValue() . "<br>"; //通过方法放回static 变量
print $foo->my_static . "<br>"; // $my_static 为未定义的属性,所以为空
//通过子类访问$my_static
print Bar::$my_static . "<br>";
$bar = new Bar();
print $bar->fooStatic() ; //返回父类的static 变量
?>
</body>
</html>
Foo::$my_static 结果为foo
foo
( ! ) Notice: Undefined property: Foo::$my_static in D:\LearnWebDevelop\php\MyPhpExse\static2.php on line 33 | ||||
---|---|---|---|---|
Call Stack | ||||
# | Time | Memory | Function | Location |
1 | 0.0007 | 376352 | {main}( ) | ..\static2.php:0 |
foo
相关文章推荐
- final.php
- php实现无限级分类
- 通过parent 关键字访问基类的方法和属性 parent.php
- 实例 6-5 “::”运算符【代码 6-6】 class_1.php
- 浅析Yii2缓存的使用
- multi.php 实例 6-4 类的多态
- 每天laravel-20160803| Container -6
- 每天laravel-20160803| Container -6
- php pi() 或M_PI(常量)
- laravel 淘宝 NPM 镜像
- MySQL+PHP配置 Windows系统IIS版
- php中的静态成员
- Cpanel如何使用phpMyAdmin
- php简单统计在线人数的方法
- 细述FTP的主动式与被动式区别
- interface.php
- php smarty模版引擎中变量操作符及使用方法
- phphub_iOS客户端源码剖析
- php简单统计在线人数的方法
- 浅析Yii2缓存的使用