0

是否可以找出作为参数传递的常量?

例子

<?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_ADDor POINTS_REQUEST_UPLOAD

4

1 回答 1

-1

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

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

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

祝你好运。

于 2013-10-12T17:33:13.300 回答