PHP类和对象(1)

  • 2020-07-29 10:02:18
  • 阅读次数:
  • 作者:盈岚科技小编
  • 来源:http://www.lyjtt.cn

网站建设中,PHP 5开始引入了新的对象模型。完全重写了PHP处理对象的方式,允许更佳性能和更多特性。本节将重点介绍PHP类和对象的定义和应用,以帮助用户掌握强大的对象化编程开发的方法和技巧。

定义和调用类

使用class关键字可以定义类,在类中可以声明类成员和方法。例如,在下面示例中定义了类A,该类中包含一个方法f()。

<?phpclass A{    function f(){ echo "类方法";    }}?>

在类中,伪变量$this是一个对调用对象的引用,即引用类的实例。再看一个示例,在这个示例中分别声明了类成员和方法。

<?phpclass A{    public $var = '默认值';      //声明成员    public function f(){         //声明方法        echo $this->var;    }}?>

使用new关键字可以调用类,即使用new关键字创建一个对象的实例,然后就可以引用类成员和方法了。如:

<?php$a = new A();     //实例化类echo $a->var;    //引用对象的成员,显示'默认值'$a->f();         //引用对象的方法,显示'默认值'?>

当把一个对象已经创建的实例赋给一个新变量时,新变量会访问同一个实例,就和用该对象赋值一样。此行为和给函数传递入实例时一样。可以用克隆给一个已创建的对象建立一个新实例。在一个类中可以使用extends关键字继承另一个类的方法和成员。但不能扩展多个类,只能继承一个基类。例如,在下面示例中,分别定义A和B类,其中A是基类,B是子类,然后就可以在B类中调用基类的成员或者方法。

<?phpclas A{                        //定义A类    public $var = '默认值';    //声明成员public function f(){       //声明方法        echo $this->var;    }}clas B extends A{             //定义B类    function e() {            //声明方法        parent::f();          //调用A类的方法f()    }}$b = new B();                //实例化B类$b->e();                     //调用对象$b的e()方法,显示'默认值'

类属性

类的变量成员被称为属性,或者字段、特征,本书统一称为属性。属性声明是由关键字public、protected或者private开头,然后跟一个变量来组成。属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指在编译阶段时就为常数,而不是在编译阶段之后在运行阶段运算出的常数。

类成员都必须使用关键字public、protected或private进行定义。由public关键字定义的类成员可以在任何地方被访问。由protected定义的类成员可以被其所在类的子类和父类访问,当然该成员所在的类也可以访问。由private定义的类成员则只能被其所在类访问。

为了兼容PHP 4,PHP 5声明属性依然可以直接使用关键字var,或者放在public、protected、private之前。但是var并不是必需的。如果直接使用var声明属性,而没有public、protected或pri-vate,PHP 5会认为这个属性为public。

在类的成员方法里面,可以通过$this->property(property是属性名字)这种方式来访问类的属性、方法,但是要访问类的静态属性或者在静态方法里面却不能使用,而是使用self::$property。在类的非静态方法里面可以使用伪变量$this,这个伪变量是调用该方法的实例化对象引用。

<?phpclass MyClass{    public $public = 'Public';    protected $protected = 'Protected';    private $private = 'Private';    function printHello() {        echo $this->public;        echo $this->protected;        echo $this->private;    }}$obj = new MyClass();echo $obj->public;         //正常执行,显示:publicecho $obj->protected;      //会产生一个致命错误echo $obj->private;        //会产生一个致命错误$obj->printHello();        //输出:public、protected和private?>

类常量

在类中还可以定义常量,常量的值将始终保持不变,常量的值必须是一个定值,不能是变量、类属性或其他操作(如函数调用)的结果。在定义和使用常量时不需要使用$符号,常量的值不能为关键字self、parent或static。例如,在下面示例中定义并使用一个类常量。

<?phpclass MyClass{    const constant = '常量值';       //声明类常量 function showConstant() {        echo  self:constant ."\n";   //在类方法中引用常量    }}echo MyClass::constant . "\n";      //直接读取类常量$class = new MyClass();$class->showConstant();             //调用类的方法显示常量值?>

当前文章标题:PHP类和对象(1)

当前URL:http://www.lyjtt.cn/news/wzzz/3249.html

上一篇:PHP函数(2)

下一篇:PHP类和对象(2)

网站建设、抖音推广、头条推广、微信朋友圈推广、快手推广专线:181-8386-5875(微信同号)