【问题标题】:Confused about use of Class over php functions() [closed]对使用类而不是 php 函数()感到困惑 [关闭]
【发布时间】:2014-01-18 12:48:39
【问题描述】:

到目前为止,我只在 php 中使用了 functions() 并且我对它相当满意。过去几天我正在学习课程,因为我对此一无所知。在阅读了 SO、php 手册和其他教程中的大量信息后,我对类、属性和方法的概述有所了解。但是,我仍然对如何使用它们感到困惑。

例如,假设这些是我的 atm 功能:

function validate_text($xyz)   
{
    $xyz = trim($xyz);
    $xyz = htmlspecialchars($xyz); 
    return $xyz;
}

function validate_checkbox($values,$db)
{
    $stmt = $db->query("SELECT values FROM checkbox_info_table");   
    foreach ($stmt as $row)
    {
        $result_values[] = $row['value'];
    }   
    $filteredData = array_intersect($checkboxValues, $result_values);
    return $filteredData;

}

function fetch_checkbox($type,$db)
{
    $stmt = $db->query("SELECT * FROM checkbox_info_table WHERE type=$type");   
    foreach ($stmt as $row)
    {
        $row_id[] = $row['id'];
        $row_type[] = $row['type'];
        $row_values[] = $row['value'];
        $row_description[] = $row['description'];
    }   
    return array($row_id, $row_type, $row_values, $row_description);

}


etc...etc..

然后我像这样调用这些函数:

$name = validate_text($_POST["name"]);
$nickname = validate_text($_POST["nickname"]);

$carscheckbox = validate_checkbox($_POST['cars'], $db);
$bikescheckbox = validate_checkbox($_POST['bikes'], $db);
$planecheckbox = validate_checkbox($_POST['planes'], $db);    

$fetch_checkbox = fetch_checkbox($type, $db); //then storing the fetched array values to variables    

etc..etc..

我的问题是:

1)什么时候决定在哪里使用类而不是函数,什么时候不使用类?

2) 如果我在上面的例子中使用类代替函数会有什么好处?例如,上面例子中函数的使用本身就很简单。如果我将它们替换为课程,我将如何受益?

3) 总是更喜欢使用类而不是函数对我来说更好吗?还是每个都有其优点和缺点?

4) 上课有正确的方法吗?人们通常如何决定?

5) 函数和类在性能方面是否存在差异?

如果您可以在此基础上进一步扩展,而不仅仅是基于此示例,也将对我的学习曲线有所帮助。

【问题讨论】:

  • 我认为您应该更多地了解 OOP 的优点/缺点。 phpclasses.org/blog/post/…
  • 由于多种原因,您的问题并不适合 SO。 1)。这不仅仅是一个问题。 2)。他们中的大多数人的答案都是见仁见智的问题。 3)。 SO 不是教授这类东西的好媒介,最好有一本关于 OOP 基础知识的好书(不要将自己局限于这里的 PHP 书籍,事实上,最好避免它们)。如果您在学习过程中对正在编写的代码有“特定的编程问题”,那么这绝对是您要问的地方。祝你好运。
  • AleVale94 - 谢谢你的博客链接。这当然有帮助。 @vascowhite - 我会听取您的建议,以获得一本关于 OOP 的书。尽管互联网上有很多信息,但在这里和那里阅读的点点滴滴只是部分有意义,这让我有很多疑问和问题。希望一本完整的初学者书籍可能会有所帮助。

标签: php function class oop methods


【解决方案1】:

类文件夹中名为confirm.php的页面中的类示例

class Category {

function get_category($link) {
  //rest of code
  } 
}

当您想在另一个 .php 文件中使用方法时,这很有用。

例如,在一个 php 文件的顶部:

include 'class/confirm.php';
$category = new Category();

用法:

$type = $category->get_category(link);

这样可以确保您的课程干净、简单且易于维护。而不是将所有代码和功能放在一个地方(更难阅读)。

此外,类通常意味着某些东西,或者可以用作其他东西的实用程序,例如仅在需要时使用类中的特定函数。您可以将其视为在任务之间建立关系和可靠性。

【讨论】:

  • 感谢@Atieh 的解释。 :)
  • 任何时候,如果你认为这是一个答案,标记它:) 快乐学习
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
相关资源
最近更新 更多