Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP上从接口获取常量_Php_Arrays_Class_Interface - Fatal编程技术网

如何在PHP上从接口获取常量

如何在PHP上从接口获取常量,php,arrays,class,interface,Php,Arrays,Class,Interface,只是一直在搜索,似乎没有找到任何与此相关的东西 我有这样一个界面: interface exampleInterface { const _TYPE = array( "name1" => "0", "name2" => "1", "name3" => "2" ); public function x(); } 也是实现此接口的类。 如何获取类似\u TYPE[“name1”] 能做到吗 编辑:“类常量

只是一直在搜索,似乎没有找到任何与此相关的东西

我有这样一个界面:

interface exampleInterface
{
    const _TYPE = array(
        "name1" => "0",
        "name2" => "1",
        "name3" => "2"
    );

    public function x();
}
也是实现此接口的类。
如何获取类似
\u TYPE[“name1”]
能做到吗


编辑:“类常量中不允许使用数组”

我建议您使用另一种方法:

abstract class exampleBaseClass
{
    const _TYPE_NAME1 = "0";
    const _TYPE_NAME2 = "1";
    const _TYPE_NAME3 = "2";

    abstract public function x();

    protected function getType($name) {
        return constant('exampleBaseClass::_TYPE_' . strtoupper($name));
    }
}
从派生类的方法访问常量:

exampleBaseClass::_TYPE_NAME1


我建议你另一种方法:

abstract class exampleBaseClass
{
    const _TYPE_NAME1 = "0";
    const _TYPE_NAME2 = "1";
    const _TYPE_NAME3 = "2";

    abstract public function x();

    protected function getType($name) {
        return constant('exampleBaseClass::_TYPE_' . strtoupper($name));
    }
}
从派生类的方法访问常量:

exampleBaseClass::_TYPE_NAME1


我建议你另一种方法:

abstract class exampleBaseClass
{
    const _TYPE_NAME1 = "0";
    const _TYPE_NAME2 = "1";
    const _TYPE_NAME3 = "2";

    abstract public function x();

    protected function getType($name) {
        return constant('exampleBaseClass::_TYPE_' . strtoupper($name));
    }
}
从派生类的方法访问常量:

exampleBaseClass::_TYPE_NAME1


我建议你另一种方法:

abstract class exampleBaseClass
{
    const _TYPE_NAME1 = "0";
    const _TYPE_NAME2 = "1";
    const _TYPE_NAME3 = "2";

    abstract public function x();

    protected function getType($name) {
        return constant('exampleBaseClass::_TYPE_' . strtoupper($name));
    }
}
从派生类的方法访问常量:

exampleBaseClass::_TYPE_NAME1


该代码不会使用低于5.6(当前为beta版)的任何PHP版本编译。类Constants中不允许使用数组。感谢您的快速响应。该代码不会使用低于5.6(当前为beta版)的任何PHP版本编译Constants类中不允许使用数组感谢您的快速响应。该代码不会在5.6以下的任何PHP版本(当前为beta版)下编译。Constants类中不允许使用数组感谢您的快速响应。该代码不会在5.6以下的任何PHP版本(当前为beta版)下编译类Constants中不允许使用数组谢谢您的快速响应。如果改用类,则可以使用受保护的静态$\u TYPE=array(…)。此外,他们可能出于另一个原因希望利用接口。如果改用类,则可以使用受保护的静态$\u TYPE=array(…)。此外,他们可能出于另一个原因希望利用接口。如果改用类,则可以使用受保护的静态$\u TYPE=array(…)。此外,他们可能出于另一个原因希望利用接口。如果改用类,则可以使用受保护的静态$\u TYPE=array(…)。此外,他们可能出于另一个原因希望利用接口。