通俗易懂PHP基础【11-类和对象(3)】

生活生活

你若爱,生活哪里都可爱。你若恨,生活哪里都可恨。你若感恩,处处可感恩。你若成长,事事可成长。不是世界选择了你,是你选择了这个世界。既然无处可躲,不如傻乐。既然无处可逃,不如喜悦。既然没有净土,不如静心。既然没有如愿,不如释然。

——丰子恺

终于到PHP基础环节的最后一节了,虽然结束,也会新是的开始的。不多说了,Let's go 。

1

域运算符

上一节我们讲过对象要调用类中的属性或者方法,用到的一个运算符是这个“->”,如果想要在类中调用类本身的属性和方法,我们可以用符号“::”来调用,这个符号就叫做域操作符。

在没有声明任何实例的情况下访问类中的函数或者基类中的函数和变量很有用处。而 :: 运算符即用于此情况。下面咱们 see see 实例:

<?php
class TestA {
  function test() {
      echo " 我是 TestA ::example().<br />\n";
  }
}
 
class TestB extends TestA {
  function test() {
    echo "我是 TestB::example().<br />\n";
    TestA::example();
  }
}
TestA::example(); //A 类没有创建对象,这将输出 我是 TestA ::example()
$testB = new TestB();// 建立一个 B 类的对象
$testB ->example();//我是 TestB::example(). 我是 TestB::example().
?>

运行结果:

2

对象克隆

所谓克隆,就是复制,创建两个具有相同特征的对象。我们不可能去创建两个类的实例并赋予相同的属性来创建两个相同特性的繁琐,这不符我们写代码的简洁之道。

如果要求两个对象具有相同的特征,可以再对类进行实例化来生成一个新对象,PHP 提供了关键字 clone,应用该关键字即可实现对象的克隆,如下实例咱们来了解一下:

<?php
class Student {
  function study(){
      echo "好好学习,天天向上";
  }
}
 
$student1=new Student ();
$student2=clone $student1; //对student1进行实例化生成对象$student2
$student->study();      //与student1有相同的特性,输出 好好学习,天天向上
?>

运行结果:

3

this关键字this关键字this关键字

this 关键字为指向当前对象的指针,用于定义的类中,可以通过使用此关键字来访问类中的属性和方法。当我们通过类创建一个实例之后,this 关键字指向对象这个实例。

如下实例,我们来看看怎么使用:

<?php
//创建一个类
class Student {
  private $name;
  private $age;
  function __construct($name,$age){
    //通过this关键字对当前类体中的属性进行赋值
    $this->name=$name;
    $this->age=$age;
  }
}
?>

4

parent关键字

parent 关键字是指向父类的指针,主要用于调用父类的构造函数。

如下代码,我们来看看怎么使用:

<?php
class Student {
  private $name;
  private $age;
  function __construct($name,$age){ 
    //通过构造函数对当前类体中的属性进行赋值
    //通过this关键字对当前类体中的属性进行赋值
    $this->name=$name;
    $this->age=$age;
  }
}
 
class ChildStudent extends Student {
  public function __construct(){  
      // 通过parent 调用父类的构造函数
      parent::_construct("Lemon黄","7岁");  
  }
}
?>

首先我们定义Student类作为父类,并在该类中定义构造函数 __construct(),然后定义 ChildStudent 并继承 Student ,同时在 ChildStudent 类体中定义该子类的构造函数,并在该构造函数中用parent来实现父类的初始化。

5

self关键字

self 关键字是指向类的本身,意思是说该关键字并不指向任何已实例化的对象,这一点很区别于 this 关键字哦。

在代码中,可以通过类名直接调用类中的静态成员(用 static 修饰的属性和方法),而不用再创建对象再去调用。

而上面我们说了,self 关键字指向类本身,所以 self 关键字经常会在类体中中使用来调用类中的静态成员,调用方法为 self 关键字加域运算符再加静态成员名。

如下代码,我们来看看怎么使用 self 关键字:

<?php
class Student {
  static private $school = "蓝翔技校";
  static function getSchool(){ 
      echo ++self::$school; //通过self调用类体中的静态成员$school 
  }
}

Student::getSchool();//直接类名调用静态成员
?>

运行效果:

基础环节到这里就结束了,初次编辑斜纹,必当漏洞百出。青山不改,绿水长流,往彼此渐行渐近,来一起学习与交流吧。

本文分享自微信公众号 - Lemon黄(lemonhunag)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券