1

这两个功能之间有逻辑上的区别吗?

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

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

编辑

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

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

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

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

1 回答 1

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) "."

文档中的相关引用:

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

于 2013-06-02T00:07:48.620 回答