php——12-类与对象(面向对象)

本文详细介绍了PHP面向对象的基础概念,包括类与对象的定义、属性和方法的使用,以及私有属性的设置与访问。通过具体示例展示了如何实例化对象,调用属性和方法,以及如何使用$this关键字优化代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类与对象

面向对象是为了更大规模合作,代码量大的情况

基础语法
<?php
class name
{
    //public 代表可见性(公有)
    //定义类属性(类似变量)
    public $s1 = 0;
    public $s2 = 1;

    //定义类方法(类似函数)
    public function s1()
    {
        echo 's1';
    }

    public function s2()
    {
        echo 's2';
    }
}

$name = new name();//根据name类实例化对象
var_dump($name);//object(name)[1]

//调用对象属性
echo $name->s1;//0
echo $name->s2;//1

//调用对象方法
$name->s1();//s1
$name->s2();//s2

//——————————————普通变量和函数调用
$x='hello';
echo $x;//hello

function x(){
    echo 'world';
}
x();//world
?>
伪变量 $this

为了优化以下代码

<?php
class name
{
    //定义类方法(类似函数)
    public function s1()
    {
        $s1=new name();
        $s1->s2();
    }

    public function s2()
    {
        echo 's2';
    }
}
$name = new name();
$name->s1();//s2
?>

优化方法( $this必须放在方法里面 )

  • $this 在构造函数中指改构造函数所创建的新对象。
  • 在类中使用当前对象的属性和方法,必须使用$this->取值。
  • 方法内的局部变量,不属于对象,不使用$this关键字取值。
  • 局部变量和属性可以同名,但用法不一样。在使用中,要尽量避免这样使用,以免混淆
<?php

class name
{
    //定义类方法(类似函数)
    public function s1()
    {
        $this->s2();
    }

    public function s2()
    {
        echo 's2';
    }
}
$name = new name();
$name->s1();//s2
?>
<?php

class Person
{
    public $name = 'noName';

    public function __construct($name = 'noName')
    {
        $this->name = $name;
        print_r($this);
    }

    public function test()
    {
        $name = 'tom';//方法内的局部变量
        echo '方法test内的局部变量$name=' . $name, '<br>';
        echo '对象属性$name=' . $this->name, '<br>';
    }
}

$cc = new Person('bob');//Person Object ( [name] => bob )
$cc->test();//方法test内的局部变量$name=tom  //对象属性$name=bob
私有属性设置和修改
<?php

class fun
{
    public $x = 2;
    //私有属性 private 是私有属性,只有在类内部才能访问
    private $y = 3;

    function num()
    {
        echo $this->x;
    }

    //设置y
    function setY($y)
    {
        $this->y = $y;
    }

    //访问y
    function getY()
    {
        return $this->y;
    }
}

$enjoy = new fun();

//公有变量获取和设置
$enjoy->x = 5;
$enjoy->num();//5

//私有变量获取和设置
$enjoy->setY(10);
echo $enjoy->getY();//10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值