【发布时间】:2013-05-03 06:04:15
【问题描述】:
我们已经开始与 PHP 开发人员合作,我查看了他的代码,从我的角度来看,写这样的东西是浪费墨水。我个人不做OOP。
他从来没有回答过这个问题,懂 OOP 的人可以解释一下。
在文件 inc/path.php 中,您可以使用不同的变量来定义 class Path 文件和文件夹的路径
class Path
{
var $path_cnfg = null;
/* URLs */
var $url_css = '';//for css url
var $url_js = '';//for javascript url
var $url_img = '';//for image url
/* Paths */
var $path_inc = '';//inc directory path
var $path_img = '';//image path
function Path()
{
$this->path_cnfg = new Config();
/* Setting URL(s) */
$this->url_css = $this->path_cnfg->base_url.'assets/css/';
$this->url_js = $this->path_cnfg->base_url.'assets/js/';
$this->url_img = $this->path_cnfg->base_url.'assets/img/';
/* Setting Path(s) */
$this->path_inc = $this->path_cnfg->root_path.'/inc/';
$this->path_img = $this->path_cnfg->root_path.'/img/';
}
}
A.类路径中方法Path的用途是什么?
function Path()
{
$this->path_cnfg = new Config();
/* Setting URL(s) */
$this->url_css = $this->path_cnfg->base_url.'assets/css/';
$this->url_js = $this->path_cnfg->base_url.'assets/js/';
$this->url_img = $this->path_cnfg->base_url.'assets/img/';
/* Setting Path(s) */
$this->path_inc = $this->path_cnfg->root_path.'/inc/';
$this->path_img = $this->path_cnfg->root_path.'/img/';
}
B.在 obj.php 中,您将变量从对象 $path 转移到数组 $data。
$data['path_img'] = $path->path_img;//Assign image directory path
$data['path_root'] = $config->root_path;//Assign root path
$data['url_base'] = $config->base_url;//Assign base url
$data['url_css'] = $path->url_css;//Assign css directory path
$data['url_js'] = $path->url_js;//Assign javascript directory path
$data['url_img'] = $path->url_img;//Assign url for image
让类 Path 超过定义数组 $data 并正确使用它的目的是什么?为什么我们需要通过所有这些方法和对象来获取我们最初可以在 6 行代码中定义的相同变量($data)。 例如
$data["path_img"] = $config->base_url . "assets/img/";
...
$data["url_css"] = $config->base_url . "/assets/css/"
$data["url_js"] = $config->base_url . "assets/js/"
$data["url_img"] = $config->base_url . "assets/img/"
【问题讨论】:
-
阅读手册和/或任何基本的 OOP 教程。您在这里期待什么样的答案?
-
为什么我们需要通过所有这些方法和对象来获取我们最初可以在 6 行代码中定义的相同变量 ($data)。
-
这是旧代码。
Path这里是构造函数,不是正常调用的方法。 -
是的,我发现现在在 php 构造函数中应该像这样定义 __construct() 在类的顶部。
-
OOP 代表“面向对象编程”,所以它当然是用对象完成的。但是您也可以使用辅助函数。而当一个项目达到一定水平时,你需要进行OOP,否则很难跟踪所有内容。