常量作为方法参数PHP

时间:2013-10-12 17:23:29

标签: php function constants

是否有可能找出哪个常量作为参数传递?

示例

<?php
define( 'POINTS_REQUEST_ADD',                '3' );
define( 'POINTS_REQUEST_DONE',               '5' );
define( 'POINTS_REQUEST_REACTIVATE',         '1' );
define( 'POINTS_REQUEST_UPLOAD',             '3' );

public static function addPoints( $points )
{
      switch($points) {
        case POINTS_REQUEST_ADD:
            ;// code
        case POINTS_REQUEST_DONE:
            ;// code
        // ....
        }
    }        
}

addPoints(POINTS_REQUEST_ADD);

在这种情况下$points只包含值(1,3或5),我想不出任何方法可以从中获取正确的常量名称。如果值为3,则可以为POINTS_REQUEST_ADDPOINTS_REQUEST_UPLOAD

1 个答案:

答案 0 :(得分:-1)

不可能完全实现你的建议,因为这些常量是按值传递的。

因此,创建一个Enum(枚举)类型,您可以通过引用传递它,它将包含您想要接收的任何属性(数值等)。

不幸的是,PHP没有原生枚举,但您可以轻松地搜索PHP枚举,这将向您展示人们构建枚举功能的许多不同方式。

祝你好运。