当前位置: 亚洲城ca88 > ca88 > 正文

PHP面向对象程序设计等等常量用法实例,PHP面向

时间:2019-07-19 05:38来源:ca88
类常量是PHP面向对象程序设计中非常重要的一个概念,牢固掌握类常量有助于进一步提高PHP面向对象程序设计的水平。本文即以实例形式描述了PHP程序设计中类常量的用法。具体如下:

类常量是PHP面向对象程序设计中非常重要的一个概念,牢固掌握类常量有助于进一步提高PHP面向对象程序设计的水平。本文即以实例形式描述了PHP程序设计中类常量的用法。具体如下:

在PHP中,使用关键字 static 修饰成员属性和成员方法被称为静态属性和静态方法。静态属性和静态方法不需要在类被实例化的情况下可以直接使用。

关键字和特殊变量

类常量:类中,保存运行周期内,不变的数据。

静态属性

new,class,extends。这三个,大家都懂得。
::,范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量。还可以用于覆盖类中的成员和方法。
parent和self。parent指的就是派生类在 extends 声明中所指的基类的名字。这样做可以避免在多个地方使用基类的名字。
$this 伪变量。$this指向当前的实例。$this却不一定是方法所属的对象。有时候类A内的代码会调用类B的一个静态方法。参考例子:
static关键字。如果声明类成员或方法为static,就可以不实例化类而直接访问。但是,除了静态方法,不能通过一个对象来访问其中的静态成员。在静态方法中,不使用$this。而使用self:: 。
final关键字。可以作用于类(class)和方法(function),会使类不能被继承,方法不能被覆盖。

定义:

与普通的成员属性不同,静态属性属于类本身而不属于类的任何实例。静态属性可以被看做是存储在类当中的全局变量,可以在任何地方通过类来访问它们。

属性

const 关键字
const 常量名 = 常量值

由于静态属性不受任何具体对象的限制,所以不需要建立类实例,而可以直接引用类中的静态属性,使用语法格式如下:

  可以初始化,但初始化的值必须是常数。常量前面用const个关键字,常量的值必须是一个定值,不能是变量,类属性或其它操作(如函数调用)的结果。

例子如下:

类名称::$静态属性名称

构造函数和析构函数

class Student
{
public $stu_id;
public $stu_name;
public $stu_gender;
const GENDER_MALE= '男';
const GENDER_FEMALE = '女';
}

其中,符号”::”被称作范围解析操作符,它可以用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。

  这两个函数都不会暗中调用基类的响应函数,这跟java的构造器机制不一样。要达到这样的效果,必须显示执行。析构函数中不能抛出异常。

类常量不受访问限定修饰符的限制
访问方法:
类::常量名

如果想在同一类的成员方法中访问静态属性,可以通过在该静态属性的名称前加上操作符”self::”来实现。例子如下:

抽象类:声明为抽象的类方法不能包含具体实现,抽象类不能实例化。必须先被继承,再实例化其子类。而且子类的访问控制要和抽象类一样,或者更加宽松。抽象类至少包含一个抽象方法的。

例子如下:

class DaBing{
  static $bing=0;   //定义静态属性 bing
  function addOne(){
    self::$bing  ;    //调用同一类中的静态属性 bing
    echo"$bing的值为:".self::$bing  ;
  }
}
$obj=new DaBing();
$obj->addOne();

接口
使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
定义的所有方法都必须是public,且方法为空
可以定义常量,但是没有属性
接口的实现(implements)必须实现所有方法,而且可以实现多个接口(注意,方法不能重名)。
接口可以被另外的接口继承 (extends)

class Student
{
public $stu_id;
public $stu_name;
public $stu_gender;
const GENDER_MALE= '男';
const GENDER_FEMALE = '女';
public function __construct($id,$name,$gender='')
{
$this->stu_id= $id;
$this->stu_name= $name;
$this->gender= ($gender == ' ')?self::GENDER_MALE : $gender;
}
}

该程序使静态属性的值加1,执行结果为:1

您可能感兴趣的文章:

  • PHP面向对象之旅:深入理解static变量与方法
  • 浅析php面向对象public private protected 访问修饰符
  • 深入分析php之面向对象
  • PHP笔记之:基于面向对象设计的详解
  • 基于PHP 面向对象之成员方法详解
  • php学习笔记之面向对象编程
  • PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
  • PHP面向对象——访问修饰符介绍
  • PHP面向对象学习笔记之二 生成对象的设计模式
  • PHP面向对象学习笔记之一 基础概念
  • PHP 面向对象详解
  • php面向对象 字段的声明与使用
  • PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
  • PHP面向对象的进阶学习(抽像类、接口、final、类常量)
  • PHP面向对象法则
  • 用穿越火线快速入门php面向对象
  • php学习笔记 面向对象中[接口]与[多态性]的应用
  • php面向对象中的魔术方法中文说明

总结:类中可以定义的成员有:常量、静态属性、非静态属性、静态方法、非静态方法

静态方法

此处需要注意: $this 表示当前对象,那么他永远表示$this所在类的对象么?
答案是否定的!因为$this的值,不取决于$this所在的类,而是取决于$this所在方法被调用时的执行对象(执行环境)

在PHP中将成员方法声明为静态,就称其为静态方法。由于静态方法不受任何具体对象的限制,所以不需要建立类实例就可以直接引用类中的方法。语法格式如下:

方法的执行环境,当前方法是在哪个对象的环境下执行,该方法内的$this就表示哪个对象。

类名称::静态方法名称([参数1,参数2,……])
与调用静态属性相同,在类中使用操作符”self::”来表示调用同一类中的静态方法,例子如下:

您可能感兴趣的文章:

  • PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
  • PHP高级对象构建 工厂模式的使用
  • PHP面向对象教程之自定义类
  • php中类和对象:静态属性、静态方法
  • PHP面向对象的进阶学习(抽像类、接口、final、类常量)
  • php使用变量动态创建类的对象用法示例
  • php判断对象是派生自哪个类的方法
  • 详解php中的类与对象(继承)
  • PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
  • PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
  • php对象工厂类完整示例
class DaBing{
  static function addOne($number){ //定义静态方法 addOne()
    echo"$number 1=";
    echo $number 1;
  }
  static function showResult($number){
    echo"$number=".$number;
    echo"<br>";
    self::addOne($number); //调用同一类中的静态方法 addOne()
  }
}
$number=100;
DaBing::showResult($number);

该程序执行的结果为:

$number=100
$number 1=101

您可能感兴趣的文章:

  • PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
  • PHP高级对象构建 工厂模式的使用
  • PHP面向对象教程之自定义类
  • PHP面向对象的进阶学习(抽像类、接口、final、类常量)
  • php使用变量动态创建类的对象用法示例
  • php判断对象是派生自哪个类的方法
  • 详解php中的类与对象(继承)
  • PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
  • PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
  • PHP面向对象程序设计之类常量用法实例
  • php对象工厂类完整示例

编辑:ca88 本文来源:PHP面向对象程序设计等等常量用法实例,PHP面向

关键词: 亚洲城ca88