【发布时间】:2018-03-10 10:10:01
【问题描述】:
我已经开始学习 PHP 面向对象编程。
总的来说,我对 PHP 的经验有限。
我的PHP代码如下:
“汽车”类:
class Cars {
static $car_specs = array("wheel_count", "name", "color");
static function set_car_detail() {
self::$car_specs["wheel_count"] = 4;
self::$car_specs["name"] = "default";
self::$car_specs["color"] = "generic";
}
static function get_car_detail() {
return self::$car_specs;
}
}
然后我试图输出这个:
Cars::set_car_detail();
echo implode(',', Cars::get_car_detail());
回声是:
wheel_count,name,color,4,default,generic
但是我想得到:
4,default,generic
foreach 尝试产生了类似的响应。 我想知道我做错了什么。
【问题讨论】:
-
这不是 OOP——你应该使用 getter/setter 而不是将每个属性放入 1 个数组中 + 也不需要静态
-
为什么要在单独的函数中设置细节?将来,您是否打算传递这些值?否则,你为什么不创建已经水合的数组是没有意义的。
-
Cars"class" 根本不是一个类。它更像一个命名空间。避免使用静态成员和方法。它们是具有花哨名称的全局对象。