1-1(OOP)PHP类、对象

面向对象(Object Oriented Programming,OOP)

面向对象编程面对的是一个个对象,这些对象帮我们把一个个事情做完

 

面向对象编程从“类”开始

每个类的定义都以关键字class开头,空格后面跟着类名,后面再跟着一对花括号

类名称规则:用大驼峰命名法(首字母也大写)

类成员:定义类的那个大括号里可以是常量、属性(又叫“变量”)、方法(函数)

class Humanity{   };

class Room{   };

 

1)属性(变量)

声明属性时必须用一个关键字指明其可见性(public、protected、private三选一开头)

变量名采用小驼峰命名法

class Humanity{
    public $name;
    public $sex;
    public $iq;
}

 

2)常量(常量名全部大写)

const 常量名称 =常量值;

class Humanity{
    public $name;
    public $sex;
    public $grade;
    const BIRTHPLACE='earth';
}

 

3)方法(函数)

类中定义的函数与类外相同,可以接受参数、有返回值等

变量和常量声明应该放在方法前面

方法前面也可以设置可见性(public、protected、private、省略 四选一 ,默认不写则是public)

方法名建议用小驼峰命名法

class Humanity{
    public $name;
    const BIRTHPLACE='earth';
    public function eatHello($food){
        echo "正在吃{$food}";
    }
}

 

对象

创建对象:new 对应的类名称( );  如,new Humanity( );    (叫做该类的对象,也就是一个实际例子)

我们把这个对象保存在一个变量里:$object=new 对应的类名( );

 

1)对象运算符(->)

使用 ->可以访问或设置 非静态属性 或者 调用方法

默认我们类里面设置的变量都是非静态属性(类常量除外)

访问非静态属性的时候无需变量开头的$

<?php
header('Content-Type:text/html;charset=utf-8');

class Humanity{
    public $name;
    public $sex;
    public $iq=100;
    const BIRTHPLACE='earth';
    public function eat($food){
        echo "正在吃{$food}";
    }
}

$robin=new Humanity(); /* 创建一个Humanity实例 */
$robin->name='罗宾房'; /* 设置 */
echo $robin->name; /* 输出 */
echo '<br>';
$robin->sex='男';
echo $robin->sex;
echo '<br>';
echo $robin->iq;
echo '<br>';
$robin->eat('苹果'); /* 调用了函数且传了参数 */
echo '<br>';

/* 一个类可以创建无数个对象 */
$mike=new Humanity();
$mike->name='麦克';
$mike->sex='男';
$mike->eat('荔枝');

 

2)$this(在类的内部(准确的说是在方法内)访问属性和方法)

$this是一个特殊的变量,一个类的$this变量总是指向该类的当前实例

所以在类的方法内,我们用 $this->属性/方法名

<?php
header('Content-Type:text/html;charset=utf-8');

class Humanity{
    public $name;
    public $sex;
    public $iq=100;
    const BIRTHPLACE='earth';
    public function eat($food){
        echo "<p>{$this->name}正在吃{$food}</p>";
        $this->say("{$food}真好吃!");
    }
    
    public function say($content){
        echo "<p>{$this->name}:{$content}</p>";
    }
}

$robin=new Humanity();
$robin->name='罗宾房';
$robin->eat('菠萝');

$mike=new Humanity();
$mike->name='麦克';
$mike->eat('火龙果');

 

<?php
class Room{
    public $length;
    public $width;
    public $heignt;
}

$room911=new Room;
$room911->length=10;
$room911->width=10;
$room911->heignt=2.5;

/* 对象是一种复合数据类型,像数组那样 */

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值