这两个函数之间是否存在逻辑差异?
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 ) ;
答案 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。