jay*_*jay 61 php class function
灯泡尚未继续......
我真的很喜欢一个易于理解的解释,在php中使用一个类而不仅仅是使用函数.
这是我现在想到的一个简单的例子,我想知道一个班级是否更有效率:
假设我有一个我用PHP构建的迷你日历小部件.我在考虑调用这个函数miniCal('arrayVars1', 'var2').但我可能会在那个页面上做两次.通过在这里使用类来使用更少的资源,创建它的新实例?
我应该在这里吠叫什么树,因为我觉得现在这棵树是一堵砖墙......
Kal*_*see 54
类用于将数据表示为对象.如果您要表示类似用户数据或拍卖出价的内容,则创建User对象或AuctionBid对象可以更轻松地将这些数据保存在一起,在代码中传递它,并使读者更容易理解.这些类将具有属性(数字字段,如数字,字符串或其他对象)以及方法(可以在任何类上操作的函数).
类通常不会在性能方面提供任何好处,但它们也很少有任何负面影响.他们真正的好处是使代码更清晰.
我建议你阅读PHP5面向对象编程指南和Wikipedia OOP条目.
Joh*_*nde 38
自PHP5以来,常见的事情是创建充当库的类.这为您提供了组织功能和利用__autoload()等类功能的好处.
例如,假设您有两个用于加密和解密数据的函数.您可以将它们包装在一个类中(让我们称之为加密)并使它们成为静态函数.然后你可以使用这样的函数(注意不需要初始化(即$ obj = new Encryption)):
$encrypted_text = Encryption::encrypt($string);
Run Code Online (Sandbox Code Playgroud)
和
$decrypted_text = Encryption::decrypt($string);
Run Code Online (Sandbox Code Playgroud)
这样做的好处是:
小智 7
函数是应用程序的核心,而类更像是盘子。没有盘子吃肉是很乱的。但是如果你没有肉,你就没有饭吃。
如果您的应用程序中有 500 个函数,您可能希望将其中至少一半分组到更大的集合中以便于访问。您可以设计常见的命名约定(“Encryption_Encrypt”、“Encycryption_Decrypt”等)……但类更简单。如果您的应用程序中只有 12 个函数,那么您可能只需要 1 个或多个类(如果有的话)。
我通常不需要在类中存储数据/属性。我倾向于将它们存储在数据库中。所以我没有经常利用课程的这一方面。
类还允许多态性,这很有帮助。如果你有几个非常相似的类,或者一个类的几个变体,你可以节省代码……而不必构造一些多用途的、类似弗兰肯斯坦的类。
使用类是分组函数的好方法.
不同之处在于编程范式的使用.类在OOP中是必需的,但在程序范例中不是必需的.在Procedural范例中,您可以将函数分组到一个文件中,该文件可以看作是一个模块.
---编辑---
你可以使用程序范式.在这个范例中并不真正需要类.
function miniCal($string_1, $string_2){
//do something
}
//invoke function
miniCal('arrayVars1', 'var2');
Run Code Online (Sandbox Code Playgroud)
你可以使用OOP范例.需要课程.
class Calculation {
public static function miniCal($string_1, $string_2){
//do something
}
}
//invoke function
Calculation::miniCal('arrayVars1', 'var2');
Run Code Online (Sandbox Code Playgroud)
结论
这两个范例的工作,但上面的OOP示例使用包含所有计算方法(函数)的Calculations对象.Calculations对象将计算函数分组,从而将它们保存在一个位置.
本例中的OOP范例遵循一种称为"坚定责任"的原则.这背后的想法是保持代码优雅,可维护和可读.