我以前主要使用 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个问题:
由于该代码是在从数据库获取内容时执行的,因此如果有不止一行,我该怎么办?
当我将 $trailhead 传递回调用代码时,变量为空
实际上,我最好为 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)在这些情况下人们通常会做什么?我的方法哪里出了问题?我知道它不止一个地方:)
$trailheads[] = $trailhead;print_r()来$trailhead检查它是否是你所期望的。PHP 中的默认对象类型是stdClass.Trailhead对象具有功能。您当前执行此操作的方式基本上没有利用 PHP 的任何对象功能 - 它本质上是一个语法略有不同的数组。