PHP学习——24 PHP面向对象(类中静态成员的创建与访问技巧:static)

版权声明:本文为博主原创文章,仅供学习交流,未经博主允许不得转载。 https://blog.csdn.net/zjy_android_blog/article/details/83447539
<?php 
class Employee
{
	// 访问控制符:指示类成员在哪里可以被访问:public/protected/private
	// 成员状态符:指示如何访问该成员:静态self/parent/static,非静态:$this->
	public static $name = '汤姆';// 公共静态属性,类内部/外部/子类均可访问
	protected static $age = 22;// 受保护的静态属性,可以在类内部和子类中访问
	private static $salary = 4000;// 私有静态属性,只能在类内部访问
	public static function show() // 静态方法
	{
		// 静态属性只允许在静态方法中访问,静态方法不允许使用伪变量$this->
		return '年龄:'.self::$age.' ---- 工资:'.self::$salary;
	} 
}

class Programmer extends Employee
{
	public static function display()
	{
		// parent:: 引用父类中的静态成员(静态属性和静态方法)
		return '姓名:'.parent::$name.' --- '.parent::show();
	}
}
echo '姓名是:'.Employee::$name;// 外部访问静态成员,使用 类名::静态成员,静态属性必须加$符号
// 姓名是:汤姆
echo '<hr>';
echo Employee::show(); // 访问类中的静态方法show
// 年龄:22 ---- 工资:4000
echo '<hr>';
echo Programmer::show(); // 子类访问父类中的静态方法show
// 年龄:22 ---- 工资:4000
echo '<hr>';
echo Programmer::display(); // 访问子类中的静态方法display
// 姓名:汤姆 --- 年龄:22 ---- 工资:4000
echo '<hr>';
$employee = new Employee();
echo $employee::show(); // 用对象也可以访问类中的静态方法show
// 年龄:22 ---- 工资:4000
echo '<hr>';
echo $employee::$name; // 用对象也可以访问类中的公共静态属性
// 汤姆
// echo '年龄:'.$employee::$age.; // 外部对象不能访问受保护和私有的静态属性
echo '<hr>';
$res = $employee instanceof Employee; // instanceof用于检查一个对象是否一个类的实例
echo '$employee是Employee的实例吗? '.($res?"是":"否");
// $employee是Employee的实例吗? 是
?>

猜你喜欢

转载自blog.csdn.net/zjy_android_blog/article/details/83447539