对象成员的访问

 时间:2024-10-12 13:06:59

1、对象中包含成员属性和成员方法,访问对象中的成员包括成员属性的访问和成员方法的访问。对成员属性的访问则又包括赋值操作和获取成员属性值得操作。访问对象中的成员和访问数组中的元素类似。只能通过对象的引用来访问对象中的每个成员。但这要使用一个特殊的运算符号”->”来完成对象成员的访问,访问对象中成员的语法格式:$引用名 = new 类名称([参数数列表]) ; //对象实例化$引用名 ->成员属性 = 值 //对成员属性赋值的操作Echo $引用名->成员属性; //获取成员属性的值$引用名->成员方法 //访问对象中的成员方法在下面的实例中,声明一个Person类,其中包括三个成员属性和两个成员方法,并通过Person类实例化出三个对象,而且使用运算符号”->”分别访问三个对象中的每个成员属性和成员方法。<?php Class Person{ Var $name; //第一个成员属性$name定义人的名字 Var $sex; //第二个成员属性$sex定义人的性别 Var $age; //第三个成员属性$age定义人的年龄//声明人的两个成员方法Function say(){ Echo “这个人在说话<br>”; //在说话的方法体中可以有更多内容}Function run(){ Echo “这个人在走路”; //在走路的方法体可以有更多内容}}//下面三行通过new关键字实例化person类的三个实例对象$person1 = new Person(); //通过类Person创建第一个实例对象$person1$person2 = new Person(); //通过类Person创建第一个实例对象$person2$person3 = new Person(); //通过类Person创建第一个实例对象$person3//下面三行是给$person1对象中属性初始化赋值$person1->name=”张三”; //将对象$person1的$name属性赋值为张三$person1->sex=”男”; //将对象$person1的$sex属性赋值为男$person1->age=”20”; //将对象$person1的$age属性赋值为20//下面三行是给$person2对象中属性初始化赋值$person2->name=”李四”; //将对象$person2的$name属性赋值为李四$person2->sex=”女”; //将对象$person2的$sex属性赋值为女$person2->age=”30”; //将对象$person2的$age属性赋值为30//下面三行是给$perso3对象中属性初始化赋值$person3->name=”王五”; //将对象$person3的$name属性赋值为王五$person3->sex=”男”; //将对象$person3的$sex属性赋值为男$person3->age=”40”; //将对象$person3的$age属性赋值为40//下面三行是访问$person1对象中的成员属性Echo “person1对象的名字是:”.$person1->name.”<br>”;Echo “person1对象的性别是:”.$person1->sex.”<br>”;Echo “person1对象的年龄是:”.$person1->age.”<br>”;//下面两行访问$person1对象中的方法$person1->say();$person1->run();//下面三行访问$person2对象中的成员属性Echo “person2对象的名字是:”.$person2->name.”<br>”;Echo “person2对象的性别是:”.$person2->sex.”<br>”;Echo “person2对象的年龄是:”.$person2->age.”<br>”;//下面两行访问$person2对象中的方法$person2->say();$person2->run();//下面三行访问$person3对象中的成员属性Echo “person3对象的名字是:”.$person3->name.”<br>”;Echo “person3对象的性别是:”.$person3->sex.”<br>”;Echo “person3对象的年龄是:”.$person3->age.”<br>”;//下面两行访问$person3对象中的方法$person3->say();$person3->run();从上例中可以看到,只要是对象中的成员,都要使用”对象引用名->属性”或”对象引用名->方法”形式访问,如果兑现中的成员不是静态的,那么这是唯一的访问形式。

2、特殊的对象引用”$this”访问对象中的成员必须通过对象的引用来完成。如果在对象的内部,对象的成员方法中访问自己对象中的成员属性,或者访问自己对象内其他成员方法时怎么处理?那就是在兑现的外部还是在对象的内部,访问对象中的成员都必须使用对象的引用变量。但对象创建完成以后,对象的引用名称无法在对象的方法中找到。如果在对象的方法中再使用new关键字创建一个对象则是另一个对象,调用的成员也是两一个新创建对象的成员。对象一旦被创建,在对象中的每个成员方法里面都会攒在一个特殊的对象引用”$this”.成员方法属于哪个对象,$this引用就代表哪个对象,专门用来完成对象内部成员之间的访问。This的本意就是”这个”的意思,就像每个人都可以使用第一人称代词”我”代表自己一样。例如,别人想访问你的年龄,就必须使用“张三的年龄”的形式,相当于在对象外部使用引用名”张三”访问他内部的成员属性”年龄”.如果自己想说出自己的年龄,则使用”我的年龄”,相当于在对象的内部使用引用名称”我”访问自己内部的成员。类Person中声明了两个方法say()和run(),通过类person实例化的三个实例对象$person1、$person2、$person3中都会存在say()和run()这两个成员方法,则每个对象中的这两个成员方法各自存在一个$this引用。在对象$person1的两个成员方法中的$this引用代表$person1、在对象$person2的两个成员方法中的$this引用代表$person2、在对象$person3的两个成员方法中的$this引用代表$person3修改一下上面实例,在声明类Person时,成员方法say()中使用$this引用访问自己对象内部的所有成员属性。然后调用每个对象中的say()方法,让每个人都能说出自己的名字、性别和年龄<?php Class Person{ Var $name; //第一个成员属性$name定义人的名字 Var $sex; //第二个成员属性$sex定义人的性别 Var $age; //第三个成员属性$age定义人的年龄//声明人的两个成员方法Function say(){ //在类中声明说话的方法,使用$this访问自己对象内部的成员属性 Echo “我的名字:”.$this->name.”,性别:”.$this->sex.”,年龄:”.$this->age.”.<br>”}Function run(){ Echo $this->name.”在走路<br>”; //使用$this访问$name属性}}//下面三行通过new关键字实例化person类的三个实例对象$person1 = new Person(); //通过类Person创建第一个实例对象$person1$person2 = new Person(); //通过类Person创建第一个实例对象$person2$person3 = new Person(); //通过类Person创建第一个实例对象$person3//下面三行是给$person1对象中属性初始化赋值$person1->name=”张三”; //将对象$person1的$name属性赋值为张三$person1->sex=”男”; //将对象$person1的$sex属性赋值为男$person1->age=”20”; //将对象$person1的$age属性赋值为20//下面三行是给$person2对象中属性初始化赋值$person2->name=”李四”; //将对象$person2的$name属性赋值为李四$person2->sex=”女”; //将对象$person2的$sex属性赋值为女$person2->age=”30”; //将对象$person2的$age属性赋值为30//下面三行是给$perso3对象中属性初始化赋值$person3->name=”王五”; //将对象$person3的$name属性赋值为王五$person3->sex=”男”; //将对象$person3的$sex属性赋值为男$person3->age=”40”; //将对象$person3的$age属性赋值为40$person1->say(); //使用$person1访问它中的say()方法,方法say()中的$this就代表这个对象$person1$person2->say(); //使用$person2访问它中的say()方法,方法say()中的$this就代表这个对象$person2$person3->say(); //使用$person3访问它中的say()方法,方法say()中的$this就代表这个对象$person3

  • vs2022怎么修改主题颜色?
  • Python教程 copy()函数的使用
  • 创建视图与修改视图
  • python正则表达式之split切割字符串
  • Visual Studio Code怎么设置排序顺序混合
  • 热门搜索
    世界遗产手抄报 古典名著手抄报 国庆手抄报内容资料 立冬手抄报 感恩手抄报图片 春节里的数学手抄报 迎中秋庆国庆手抄报 国庆节手抄报图片大全简单又漂亮 清明节的手抄报怎么画 推广普通话的手抄报