写点什么

【web 开发基础】PHP 面向对象之访问类中的成员属性和方法(58)

作者:迷彩
  • 2022-12-31
    广东
  • 本文字数:1279 字

    阅读完需:约 4 分钟

前言

通过对象的引用可以访问类中的成员属性和方法,这里需要使用特殊的运算符号:“->”。具体的语法格式如下:

<?php$变量名 = new类名称();  //类的实例化$变量名->成员属性 = 值;  //为成员属性赋值$变量名->成员属性;     //直接获取成员的属性值$变量名->成员方法;     //访问对象中指定的方法
复制代码

另外,用户还可以使用一些特殊的访问方法。


1.$this

$this 存在于类的每一个成员方法中,是一个特殊的对象引用方法。成员方法属于哪个对象,$this 引用就代表哪个对象,专门用于完成对象内部成员之间的访问。

2.操作符“::”

操作符“::”可以在没有任何声明实例的情况下访问类中的成员。使用的语法格式如下:


关键字::变量名/常量名/方法名
复制代码

其中,关键字主要包括 parent、self 和类名 3 种。parent 关键字表示可以调用父类中的成员变量、常量和成员方法。self 关键字表示可以调用当前类中的常量和静态成员。类名关键字表示可以调用本类中的常量变量和方法。

下面通过实例介绍类的声明和实例化,具体代码如下:

<?phpclass Student{		//定义成员属性	private $name;	private $gender;		//定义成员方法	function setName($name){		$this->name = $name;	}		function getName(){		return $this->name;	}
function setGender($gender){ $this->gender = $gender; } function getGender(){ return $this->gender; }}
//类实例化$zhangsan = new Student();$zhangsan->setName('张三');$zhangsan->setGender('男');
$lisi = new Student();$lisi->setName('李四');$lisi->setGender('男');
echo $zhangsan->getName() . "的性别是:" . $zhangsan->getGender() ."\n";echo $lisi->getName() . "的性别是:" . $lisi->getGender() ."\n";
?>
复制代码

执行结果如下:

注:类名一般用大驼峰法(即开头首字母大写),变量和方法名用小驼峰(即开头首字母小写,其他的单词首字母大写)

  • 用 class 关键字声明一个类,而这个类的名称是 Student。在大括号内写入类的属性和方法。其中 private $name、private $gender 为类 Student 的自有属性,用 private 关键字声明,也就是说只有在类内部的方法可以访问它们,类外部是不能访问的。

  • function setName($name)、function Getname()、function setGender($gender)和 function getGender()就是类方法,可以对 private $name、private $gender 这两个属性进行操作。$this 是对类本身的引用。用“->”连接类属性,格式如 $this->name 和 $this->gender。

  • 之后用 new 关键字生成一个对象,格式为 $object = new Classname();,对象名是 $zhangsan。当程序通过 new 生成一个类 Student 的实例,也就是对象 $zhangsan 的时候,对象 $zhangsan 就拥有了类 Student 的所有属性和方法。然后就可以通过“接口”,也就是这个对象的方法(也就是类的方法的副本)来对对象的属性进行操作。

  • 通过接口 setName($name)给实例 $zhangsan 的属性 $name 赋值为"张三",通过 setGender($gender)给实例 $zhangsan 的属性 $gender 赋值为男。同样的道理,通过接口操作了实例 $lisi 的属性。最后通过接口 getName()、getGender()返回不同的两个实例的属性 $name 和 $gender,并且打印输出结果。

发布于: 2022-12-31阅读数: 45
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP面向对象之访问类中的成员属性和方法(58)_面向对象_迷彩_InfoQ写作社区