14-1类与对象的关系和成员访问方式–PHP实战开发教程

14-1类与对象的关系和成员访问方式–PHP实战开发教程

脐守睫段吝矫驰培贪触康厢狄


14-1类与对象的关系和成员访问方式–PHP实战开发教程第1张


新建目录14 在14下新建类GirlFriend1.php

要求:
1.类声明代码应该单独创建一个php文件
2.类名必须要与类文件名一致
3.必须使用命名空间(暂未学到,后面再说)

当前类共有5个成员:3个属性,二个方法
属性就是类中声明的变量,命名规则与普通变量完全一致
方法就是类中声明的函数,与普通函数的命名与使用规则完全一样
由于定义在类中,所以与普通变量与函数相比,有一些特殊地方,例如访问控制
类成员访问控制,也叫外部可见性,目前不限制外部访问,统一设置为public(默认)

14-1类与对象的关系和成员访问方式–PHP实战开发教程第2张

代码:

<?php
class GirlFriend1
{
    //类成员:属性和方法
    //类属性的初始化必须使用标量的字面量,数组也行,不能使用变量,表达式,对象
    //类属性:$name 姓名
    public $name="冰冰姐";
    //类属性: 年龄
    public $age=18;
//    public $age2=18+10;错误,不能使用表达式
//    public $age2=$value;错误,不能使用变量
//    public $age2=new Object;错误,不能使用对象
    //类属性: 身材三维stature['stætʃə]: 胸,腰,臀
    public $stature=[90,80,90];

    //类方法类似于函数
    //类方法: getInfo() 获取女友姓名和年龄
    public function getInfo($name='',$age=0)
    {
        //对象属性的初始化,引用类成员使用伪变量$this:当前类的实例对象
        //->:对象访问符,指向符
//        $name=''错误,属性的初始化要用$this
        $this->name=empty($name)?$this->name:$name;
        $this->age=($age==0)?$this->age:$age;
        //返回当前对象的name与age属性值
        return "姓名:".$this->name." 年龄:".$this->age."<br>";

    }
    //类方法: getStature() 获取女友身材信息
    public function getStature($stature=[])
    {
        //对象属性初始化
        $this->stature=empty($stature)?$this->stature:$stature;
        return "胸围:".$this->stature[0]." 腰围:".$this->stature[1]." 臀围:".$this->stature[2]."<br>";
    }




}

新建demo1.php

实现:

1.对象的创建
2.对象成员(属性)的初始化
3.对象成员的访问

14-1类与对象的关系和成员访问方式–PHP实战开发教程第3张

代码:

<?php
//导入类Girlfriend
require "./class/GirlFriend1.php";
//访问类中声明的成员,必须先创建类的实例,即对象
$girlfriend1=new GirlFriend1();
var_dump($girlfriend1);

执行:

14-1类与对象的关系和成员访问方式–PHP实战开发教程第4张


访问属性,修改demo.php

<?php
//导入类Girlfriend
require "./class/GirlFriend1.php";
//访问类中声明的成员,必须先创建类的实例,即对象
$girlfriend1=new GirlFriend1();
//var_dump($girlfriend1);
//对象成员初始化:属性赋值
$girlfriend1->name="波波姐";
$girlfriend1->age=25;
$girlfriend1->stature=[88,90,98];
//访问对象的成员属性:使用指向符: ->
echo "<p>姓名:".$girlfriend1->name."</p>";
echo "<p>年龄:".$girlfriend1->age."</p>";
echo "<p>身材:</p>";
echo "<pre/>";
print_r($girlfriend1->stature);

执行:

14-1类与对象的关系和成员访问方式–PHP实战开发教程第5张


类方法的访问,修改demo.php

<?php
//导入类Girlfriend
require "./class/GirlFriend1.php";
//访问类中声明的成员,必须先创建类的实例,即对象
$girlfriend1=new GirlFriend1();
//类方法的访问:
echo $girlfriend1->getInfo();
echo $girlfriend1->getInfo('波波姐',30);

echo $girlfriend1->getStature();
echo $girlfriend1->getStature([120,130,90]);

执行:

14-1类与对象的关系和成员访问方式–PHP实战开发教程第6张


赏泌巢琳谓懂佳娜吩媚兜建潘