加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

你能帮助我更好地理解PHP类吗?

发布时间:2020-12-13 22:22:07 所属栏目:PHP教程 来源:网络整理
导读:我是一个慢学习者,我想在编码方面,我已经学习 PHP几年了,我仍然不理解课程,所以是时候我付出一些努力来至少更好地理解它们. 我使用函数来做所有事情.人们经常在这里给我发表评论说他们不相信我有一个社交网站而且我不使用课程. 我真的不明白他们的好处你能解
我是一个慢学习者,我想在编码方面,我已经学习 PHP几年了,我仍然不理解课程,所以是时候我付出一些努力来至少更好地理解它们.

我使用函数来做所有事情.人们经常在这里给我发表评论说他们不相信我有一个社交网站而且我不使用课程.

我真的不明白他们的好处你能解释一下这个好处,除了它可以让多个人轻松处理你的代码吗?

对我来说,似乎只是简单的任务使类复杂化

解决方法

简单地(实际上,非常简单),类允许您以逻辑单元组织代码,以及为用户创建的对象提供容器和模板.

假设你有一辆车……一辆车可以容纳人,里面有人.

class Car {
    private $people = array();
    private $capacity;

    function __construct($capacity) { $this->capacity = $capacity; }

    function addPerson($name) {
        if(count($this->people) >= $this->capacity) {
            throw new Exception("Car is already at capacity");
        } else {
            $this->people[] = $name;
        }
    }
    function getPeople() { return $this->people; }
    function getCapacity() { return $this->capacity; }
}

现在,我们可以开始使用这些车:

$aliceCar = new Car(2);
$aliceCar->addPerson("Alice");

$bobCar = new Car(4);
$bobCar->addPerson("Bob");
$bobCar->addPerson("Jake");

我现在有2辆汽车(实例),它们拥有不同的数据.

echo implode(',',$aliceCar->getPeople()); // Alice
echo $aliceCar->getCapacity(); // 2

echo implode(',$bobCar->getPeople()); // Bob,Jake
echo $bobCar->getCapacity(); // 4

我可能还想要一辆面包车,它将为门提供额外的属性:

class Van extends Car {
    private $num_doors;

    function __construct($capacity,$num_doors) {
        parent::__construct($capacity); // Call the parent constructor
        $this->num_doors = $num_doors;
    }

    function getNumDoors() { return $this->num_doors; }
}

现在让我们使用那辆面包车:

$jakeVan = new Van(7,5);

// Van is ALSO a Car
$jakeVan->addPerson("Ron"); //Jake is with Bob now,so his son is driving the Van
$jakeVan->addPerson("Valery") //Ron's girlfriend

echo implode(',$jakeVan->getPeople()); // Ron,Valery
echo $jakeVan->getCapacity(); // 7
echo $jakeVan->getNumDoors(); // 5

现在也许您可以看到我们如何将这些概念应用于创建DBTable和User类.

实际上,很难真正开始解释为什么类在不涉及面向对象编程(抽象,封装,继承,多态)的概念的情况下简化了一个人的生活.

我建议你阅读以下书籍.它将帮助您掌握OOP的核心概念,并帮助您理解为什么对象真正让您的生活更轻松.如果不理解这些概念,很容易将类视为另一个复杂问题.

PHP 5对象,模式和实践

PHP 5 Objects,Patterns,and Practice http://ecx.images-amazon.com/images/I/51BF7MF03NL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg

可在Amazon.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读