我想知道我何时以及为什么要在php中使用类,我在php.net上读到一个类包含变量(我们在它们之前写var)和这些变量的函数,那么为什么不使用常规函数呢?我的意思是上课做什么?
谢谢你。
答案 0 :(得分:6)
使用面向对象编程(即:OOP aka:基于类)的方法而不是传统的过程编程通常建议的优点是OOP有助于可维护性并提供更清晰的关注点分离(主要是由于对象的事实虽然构造良好的程序代码不一定比OOP方法更糟糕,但实际上是一组数据和与该数据相关的操作。
无论如何,我很想看看有关的讨论:simple explanation PHP OOP vs Procedural?因为我怀疑这会回答你的许多问题。
那就是说,值得注意的是,从来没有“一刀切”的方法,有时程序和OOP的混合都是理想的。
另外,如果你是PHP的初学者(或者一般的编程),有时候OOP(尤其是像Zend这样的大型框架)最初看起来可能会让人不知所措,但通常值得去了解它们。 (它会支付股息。)
作为最后一点,我个人说OOP通常更像是一种“系统思考”方法,因为大型系统通常会(合理地)自然地分解为对象。从一个多年来一直使用OOP的人的角度来看,我也会说这至少值得进行一些认真的调查。 (Wikipedia entry可以像任何一个一样开始。)
答案 1 :(得分:2)
使用类可以封装和重用代码。这是一个例子(PHP 5):
class car {
public $color;
public function __construct($color) {
$this->color = $color;
}
public function show_off() {
return 'This car is ' . $this->color;
}
}
// And now I can re-use the code elegantly:
$car_one = new car('blue');
$car_two = new car('red');
$car_thr = new car('yellow');
echo $car_one->show_off(); // This car is blue
echo $car_two->show_off(); // This car is red
echo $car_thr->show_off(); // This car is yellow
我必须说,像你一样 - 当我还很绿的时候 - 我觉得OOP是寻找问题的解决方案。但是,在潜入并使用它之后,最终它点击了。
对象,最简单的形式,就像你可以传递的逻辑和数据的容器。这可能非常有利。
然而,当我第一次开始学习OOP时,我记得我的心态。上面的例子不会点击。欣赏它的唯一方法是使用它。一旦你做了,你会很高兴你做到了。
[代码已由DG编辑]
答案 2 :(得分:0)
类是分组数据和功能的便捷方式。您可以创建一个包含人员信息的类。然后,如果你想要一个人员列表,你可以创建一个数组,并为每个人输入一个类的实例。您可以使用人员的数据填充实例的变量。这看起来很像一个二维数组(就像persondata数组的数组),但它更多。您可以构建类中包含的函数,这些函数对类中的变量进行操作。您可以从外部隐藏函数和变量,因此在构建框架时,您可以区分内部和外部功能。
然后,甚至没有谈到继承,这给了你更多的可能性。
所有这些都可以在过程代码中完成,但 OOP (用于面向对象编程,这是使用类编程)为您提供全新的视图构建代码。
有很多关于这个主题的大书,所以不可能在这篇文章中描述确切的细节和可能性。我可以告诉你的是,你应该试一试,在你遇到的最初的挫折中继续尝试一下。然后,当别人问你这个问题时,你会告诉他们同样的事情。 :)