常量作为方法参数 PHP


Constants as method arguments PHP

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

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

不可能

完全实现你所设置的,因为这些常量是按值传递的。

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

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

祝你好运。