PHP中嵌套的Min(),Max()函数之间是否存在逻辑差异?

时间:2013-06-01 23:42:14

标签: php logic

这两个函数之间是否存在逻辑差异?

min ( $a , $b , $c ) ;

min ( $a , min ( $b , $c ) ) ;

修改

目前正在开发一个小类来管理颜色对象,以便在颜色空间之间操纵通道值,例如; RGBtoHEX RGBtoCMYK 等...当我在寻找一些示例代码以更好地理解转换算法时,许多编写的函数都实现了第二种方法来计算min,给定RGB通道的最大值,如;

$min = min ( $R , min ( $G , $B ) ) ;

所以;假设以下函数返回相同的$min值是否安全?

$min = min ( $R , $G , $B ) ;

1 个答案:

答案 0 :(得分:4)

是差异,尽管在实践中不太可能遇到。

php> $a = '0'; $b = 0; $c = '.';
php> var_dump(min($b,$c));
int(0)
php> var_dump(min($a,min($b,$c)));
string(1) "0"
php> var_dump(min($a,$b,$c));
string(1) "."

documentation的相关引用:

  

如果与整数相比,PHP会将非数字字符串计算为0,但如果将其视为数字最低值,则仍会返回该字符串。如果多个参数计算为0,则min()将返回最低的字母数字字符串值(如果给出任何字符串),否则返回数字0。