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