4__面向对象的PHP之作用域

1.  字段作用域

PHP支持的字段作用域有: public、private、protected、final、static

(1)public

  访问方式: 公共字段可以由相应的对象直接操作和访问。

   注意事项:在OOP中并不鼓励使用公共字段,因为直接访问使得类无法很容易地完成某种数据验证。

(2)private

      访问方式:指定为私有的字符按不能由类实例化的对象直接访问,也不能由子类使用。

      注意事项:私有字段必须通过公共接口来访问,这符合OOP的封装原则。

(3)protected

       与函数通常需要只在内部使用的变量一样,类也可以包含只在内部使用的字段。这些字段称为保护字段。

       访问方式: 在继承的子类中也可以访问和操作保护字段,这是私有字段所没有的特性。

       作用: 如果希望拓展类,就应当使用保护字段而不是私有字段。

(4)final

       访问方式:在为字段设置final作用域时,将阻止在子类中覆盖这个字段。

(5)static

       访问方式:提供所有类共享的字段,这些字段与所有类的实例有关,但不能由任何特定的对象调用。

2. 方法作用域

PHP支持6种方法作用域:public、private、protected、abstract、final、static

(1)public

       访问方式:公共方法可以在任何位置任何时间访问。

(2)private

       访问方式:标记为private的方法只能在类内部使用,不能由实例化的对象调用,也不能由类的子类使用。

      作用:  一般这类方法只用作作为其他方法的“辅助方法”。

(3)protected

      访问方式: 标记为protected的方法只能在该类及其子类中使用。

      注意事项: 不能再类外部调用具有protected作用域的方法。

(4)abstract

      访问方式: abstract方法只在父类中声明,在子类中实现。

(5)final

      访问方式: 标记为final的方法可以防止被子类覆盖。

(6)static

      访问方式:提供所有类共享的方法,这些方法与所有类的实例有关,但不能由任何特定的对象调用。

 

<?php

/**
  * 类的概念
  */
class Staff {
	public $name;
	private $title;
	protected $wage;
	// final $ssn; 在php5.4中已不可使用,只能修饰类和方法
	const PI = '3.14159265'; // 常量
	public function clockIn() {
		echo "Member $this->name clocked in at " . date ( "h:i:s" ) . "<br/>";
	}
	public function clockOut() {
		echo "Member clocked out at " . date ( "h:i:s" ) . "<br/>";
	}
}
$employee = new Staff ();

// 在类外部操作共有字段,不推荐此使用方法
$employee->name = "yeahwell";
$name = $employee->name;
echo "新建的雇员名为$name<br/>";
// $employee->name = "123456"; //无数据验证

// 使用常量
echo "π为" . Staff::PI . "<br />";

// 在类外部调用共有方法
$employee->clockIn ();
// Staff::clockOut ();
/*
 * php5.4.5环境下将有此异常 Strict Standards: Non-static method Staff::clockOut() should
 * not be called statically in D:\YWProgramFiles\Programer\Server\Apache
 * Software
 * Foundation\Apache2.2\htdocs\ZendWorkspace\PHPManual\oop\oop_work_domain.php
 * on line 41 Member clocked out at 05:16:47
 */

?>


 

转载于:https://www.cnblogs.com/yeahwell/archive/2013/01/17/5226069.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值