dqbn76906 2012-02-22 12:43
浏览 66

在PHP中初始化另一个类的对象

I have 4 files index.php, Database.php, Zoo.php, Animal.php

// Zoo.php

class Zoo {
    private $db;
    private $animals = array();

    public function __constructor(Database $db) {
        $this->db = $db;
        $this->getAllAnimals();
    }

    private function getAllAnimals() {
        //Database stuff, returns an array with all animals
        $p=0;
        foreach($dbresult as $an){
            $animals[$p++] = new Animal($an['name'], $an['age'], $an['weight']);
        }
    }

    public function listAnimals() {
        foreach ($this->animals as $a){
            echo $a->name;
            //and so on
        }
    }
}

// Animal.php

class Animal {
    // variables for the animals
}

// index.php

<?php
    include 'Database.php';
    include 'Zoo.php';

    $db = new Database();
    $zoo = new Zoo($db);
    $zoo->listAnimals();
?>  

This is from the top of my head, so if there are some errors, just treat it as pseudocode :)

My problem:
I get a Fatal Error Class Animal not found. If I add include 'Animal.php'; in the first line of Zoo.php, right before class Zoo { it works.

I'm stil learning about OOP with php, and the include-line strikes me as odd, so I ask for someone to help me out with this.
Is there another way to use "Animal"-objects in the "Zoo"-class, without the include or is it normal to use include, or maybe require/require_once?

  • 写回答

3条回答 默认 最新

  • doucao1888 2012-02-22 12:47
    关注

    I believe that most OOP developers these days take advantage of __autoload or (even better) the SPL autoloader, even if only in the libraries and frameworks that they use.

    评论

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c