首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP中何时使用类与函数

PHP中何时使用类与函数
EN

Stack Overflow用户
提问于 2010-01-23 12:31:53
回答 4查看 57.9K关注 0票数 66

灯泡还没亮起来...

我真的想要一个简单易懂的解释,来说明在php中使用类的优势,而不是仅仅使用函数。

下面是我现在的想法的一个简单例子,我想知道一个类是不是更有效:

假设我有一个用php构建的迷你日历小部件。我在考虑调用函数miniCal('arrayVars1', 'var2')。但我可能会在那一页上做两次。在这里使用一个类来使用更少的资源,创建它的新实例吗?

我应该在这里叫什么树,因为我现在感觉这棵树是一堵砖墙……

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-23 12:37:57

类用于将数据表示为对象。如果要表示用户数据或拍卖出价之类的内容,创建一个User对象或AuctionBid对象可以更容易地将这些数据保存在一起,在代码中传递,并使读者更容易理解这些数据。这些类将具有属性(数据字段,如数字、字符串或其他对象)以及方法(可以在任何类上操作的函数)。

类通常不会在性能方面提供任何好处,但它们也很少有任何负面影响。它们的真正好处是使代码更清晰。

我建议您阅读PHP5 Object-Oriented Programming guideWikipedia OOP entry

票数 58
EN

Stack Overflow用户

发布于 2013-12-12 09:47:48

函数是应用程序的核心,而类更像是盘子。没有盘子吃肉太乱了。但是如果你没有肉,你就没有饭吃。

如果您的应用程序中有500个函数,您可能希望将其中至少一半的函数分组到更大的集合中,以便于访问。您可以设计出通用的命名约定("Encryption_Encrypt“、"Encycryption_Decrypt”等)。...but类更简单一些。如果您的应用程序中只有12个函数,那么您可能只有1个或1个类(如果有的话)。

我不经常需要在类中存储数据/属性。我倾向于将它们存储在数据库中。因此,我并没有经常利用类的这一方面。

类还允许多态性,这会很有帮助。如果您有几个极其相似的类,或者一个类的几个变体,您可以省去code...without构造一些多用途的、类似科学怪人的类。

票数 8
EN

Stack Overflow用户

发布于 2010-01-23 23:09:53

在我对这个问题的回答中,我列出了您可以使用OOP风格的类的地方:https://stackoverflow.com/questions/2035449/why-is-oop-hard-for-me/2035482#2035482

基本上,当你想要表示一个有东西的对象的时候。就像一个数据库变量,其中有一个唯一的连接。所以我会存储它,这样我就可以确保mysql_query每次都使用正确的连接:

代码语言:javascript
复制
class MySQL extends Database
{
    public function connect($host, $user, $pass, $database)
    {        
        $this->connection = mysql_connect($host, $user, $pass);
        $this->select_db($database);
    }

    public function query($query)
    {
        return mysql_query($query, $this->connection);
    }

    public function select_db($database)
    {
        mysql_select_db($database);
    }    
}

或者,您可能想要构建一个表单,您可以创建一个包含输入列表的Form对象,这样当您决定显示表单时,您希望它位于表单内部:

代码语言:javascript
复制
class Form
{
    protected $inputs = array();
    public function makeInput($type, $name)
    {
         echo '<input type="'.$type.'" name="'.$name.'">';
    }

    public function addInput($type, $name)
    {
         $this->inputs[] = array("type" => $type,
                "name" => $name);
    }

    public function run()
   {
       foreach($this->inputs as $array)
       { 
          $this->makeInput($array['type'], $array['name'];
       }
    }
}

$form = new form();

$this->addInput("text", "username");
$this->addInput("text", "password");

或者像其他人建议的那样,一个人:

代码语言:javascript
复制
class Person{

    public $name;
    public $job_title;
    // ... etc....

}

所有这些都是创建类的原因,因为它们表示具有名称或职务等属性的对象,并且可能具有诸如显示表单等方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2122123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档