我正在编写一个我希望能够轻松扩展的类,但每个变量需要3或4个函数才能使用它。我试图想出一种方法,我可以利用数组或其他数据类型,这样我就可以编写强制函数并将它们与每个变量一起使用而无需编写越来越多的代码,只需简单地向数组中添加一个新变量它会自动处理。有人做过这样的事吗?
答案 0 :(得分:2)
看一下PHP magic methods。您可以使用__get
在调用不可访问的属性时从数据存储(例如数组)中获取值,并在设置时使用__set
。调用不可访问的方法时会调用__call
方法,因此您可以检查其中任何一个需要的方法。请注意,魔术方法比手动编码所有方法要慢一些。
答案 1 :(得分:1)
您可能有兴趣在课堂上实施__call
,作为一种全能方法。有关详细信息,请参阅the documentation。通过这种方式,您的对象将能够接收实际不存在的方法的方法调用,但会根据其名称动态调度。您将检查所请求的方法是否与您提及的这些扩展之一相对应。
答案 2 :(得分:0)
你在找这样的东西吗?
function myfunc($requiredParameter, $arrayWithOptionalParameters=array()) {
if(!empty($arrayWithOptionalParameters['somekey'])) {
// Do stuff
}
}