Php 为什么在OOP中,所有的事情都是在对象中进行的?
我们已经开始与PHP开发者合作,我查看了他的代码,从我的角度来看,编写这样的东西是浪费墨水。我个人不做OOP 他从来没有回答过这个问题,一个善于OOP的人能解释一下吗 在文件inc/path.php中,您使用不同的变量为文件和文件夹的路径定义类路径Php 为什么在OOP中,所有的事情都是在对象中进行的?,php,oop,object,Php,Oop,Object,我们已经开始与PHP开发者合作,我查看了他的代码,从我的角度来看,编写这样的东西是浪费墨水。我个人不做OOP 他从来没有回答过这个问题,一个善于OOP的人能解释一下吗 在文件inc/path.php中,您使用不同的变量为文件和文件夹的路径定义类路径 class Path { var $path_cnfg = null; /* URLs */ var $url_css = '';//for css url var $url_js = '';//for javasc
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.方法路径类内路径的目的是什么
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
让类路径自行定义数组$data并直接使用它的目的是什么?为什么我们需要遍历所有这些方法和对象来获得最初可以在6行代码中定义的相同变量($data)。 e、 g
当将数据和行为封装到类中时,您选择面向对象编程,类的实例很好地映射到您试图解决的问题上 并不是每个问题都最好用对象来解决。还有其他的编程风格——我想到了函数式和声明式——也很好。我所知道的大多数科学编程都是使用函数或过程语言完成的,而不是对象 与函数样式相比,面向对象的语言可能比较冗长 如果OOP确实很好地映射到您的问题上,那么您不需要使用对象编程 我对PHP中的对象了解不多,但我猜它们是事后才想到的。我不认为它是面向对象编程的前五种语言。
也许问题与您的关系与实现或语言的关系一样大。如果你不习惯从对象的角度思考问题,这可能会显得很奇怪。阅读手册和/或任何基本的OOP教程。您希望得到什么样的答案?为什么我们需要遍历所有这些方法和对象,以获得最初可以在6行代码中定义的相同变量($data)。这是旧代码<代码>路径这里是构造函数,不是一个正常调用的方法。是的,我发现现在在php中,构造函数应该像这样定义_construct()在类的顶部。OOP代表“面向对象编程”,所以它当然是用对象完成的。但您也可以使用帮助器函数。当一个项目达到一定的水平时,你需要进行面向对象的工作,否则很难跟踪每一件事。我不是从对象的角度来考虑的,这是肯定的。我理解,如果你能看到3d或2d中的对象,而不仅仅是用代码设计类,那么它就可以把事情弄清楚一点。
$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/"