PHP - 根据条件在类中声明函数

标签 php function class conditional-statements declare

有没有办法做这样的事情:

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/

相关文章:

php - WAMP 无法执行菜单项(内部错误)

php - 如果一个变量只包含一个词

java - 如何给一个类一个克隆方法?克隆方法返回什么?

c++ - 如何在类函数中使用 "..."作为变量

Swift 中的类变量

php - 为什么此查询不返回对象?

php - 创建将数据发送到数据库的 php 表单时出现问题

javascript - 如何为点击事件创建一个函数?

javascript - 仅使用一个选项重置 Angular JS 中的选择框

java - 将类作为方法中的参数传递并在 If 语句中使用此参数