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

<?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的实例吗? 是
?>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值