有没有办法做这样的事情:
class Test {
if(!empty($somevariable)) {
public function somefunction() {
}
}
}
我知道这可能不是最佳实践,但我需要针对我遇到的一个非常具体的问题执行此操作,那么有什么办法可以做到这一点吗?
如果该变量(与 URL 参数绑定(bind))不为空,我只想将该函数包含在类中。正如现在所写,我收到错误:语法错误,意外的 T_VARIABLE,期望 T_FUNCTION
谢谢!
最佳答案
这取决于您的具体用例,我没有足够的信息来给出具体答案,但我可以想到一个可能的解决方案。
使用 if 语句扩展类。将除一个函数之外的所有内容放入 AbstractTest
中。
<?php
abstract class AbstractTest
{
// Rest of your code in here
}
if (!empty($somevariable)) {
class Test extends AbstractTest {
public function somefunction() {
}
}
} else {
class Test extends AbstractTest { }
}
现在,如果 $somevariable
不为空,则 Test
类仅具有方法 somefunction
。否则,它直接扩展 AbstractTest
并且不添加新方法。
关于PHP - 根据条件在类中声明函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639348/