运行以下命令,我希望收到N, Y, Y
.
我理解为什么我不这样做,因为'0.00' != '0'
对于第二个示例,但是否有一致的测试方法,0
无需强制转换为 float/double,也无需===
将==
.
echo bcmul( '5.1', '2.234', 2 );
echo bcmul( '5.1', '2.234', 2 ) === '0' ? ' Y ' : ' N ';
echo "<br/>";
echo bcmul( '0.00', '000.00', 2 );
echo bcmul( '0.00', '000.00', 2 ) === '0' ? ' Y ' : ' N ';
echo "<br/>";
echo bcmul( '0', '0', 2 );
echo bcmul( '0', '0', 2 ) === '0' ? ' Y ' : ' N ';
echo "<br/>";
笔记
为什么我不想放弃
===
?
如果我通过诸如 之类的方法将功能作为更大项目的一部分提供get_total_cost()
,我认为其他开发人员在期望函数返回数值时不得不放弃严格比较是不直观的作为一个字符串。