是否有可能找出哪个常量作为参数传递?
例
<?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_ADD
或POINTS_REQUEST_UPLOAD
。
不可能
完全实现你所设置的,因为这些常量是按值传递的。
因此,请改为创建一个 Enum(枚举)类型,您可以通过引用传递该类型,该类型将包含要接收的任何属性(数值等)。
不幸的是,PHP 没有原生枚举,但您可以轻松地在网上搜索 PHP-枚举,这将向您展示人们构建枚举功能的许多不同方式。
祝你好运。