使用 PHP 对象

Gen*_*nik 5 php

我以前主要使用 PHP 编写脚本,现在考虑“更认真地”对待它:)

我正在一个远足网站上工作,我需要将一些值放入一个对象中,然后尝试将其传递回调用代码。

我尝试这样做:

$trailhead = new Object ();
Run Code Online (Sandbox Code Playgroud)

但系统有点对我吐了。

然后我根本没有声明该对象,并开始像这样使用它:

$trailhead->trailhead_name = $row['trailhead_name'];
$trailhead->park_id = $row['park_id'];
Run Code Online (Sandbox Code Playgroud)

这似乎工作相当不错。但这样做至少存在3个问题:

  1. 由于该代码是在从数据库获取内容时执行的,因此如果有不止一行,我该怎么办?

  2. 当我将 $trailhead 传递回调用代码时,变量为空

  3. 实际上,我最好为 Trailhead 制作一个真实的物体,如下所示:

    class Trailhead
    {
        private $trailhead_name;
        private $park_id;
        private $trailhead_id;
    
        public function __construct()
        {
            $this->trailhead_name    =    NULL; 
            $this->park_id    =    NULL; 
            $this->trailhead_id    =    NULL;     
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

在这些情况下人们通常会做什么?我的方法哪里出了问题?我知道它不止一个地方:)

cee*_*yoz 4

  1. $trailheads[] = $trailhead;
  2. 我会做一个print_r()$trailhead检查它是否是你所期望的。PHP 中的默认对象类型是stdClass.
  3. 是的,这会更好,因为它允许您的Trailhead对象具有功能。您当前执行此操作的方式基本上没有利用 PHP 的任何对象功能 - 它本质上是一个语法略有不同的数组。