【发布时间】: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