我写了一个用户函数来返回x,y坐标系上两点之间的距离。输入参数为0,0,10,10
。
以下是原始代码:
public static function dist2d($x1,$y1,$x2,$y2) {
return sqrt((($x2 - $x1) * ($x2 - $x1)) + (($y2 - $y1) * ($y2 - $y1)));
}
这将返回110。
以下是有效的代码:
public static function dist2d($x1,$y1,$x2,$y2) {
$result = (($x2 - $x1) * ($x2 - $x1)) + (($y2 - $y1) * ($y2 - $y1));
return sqrt($result);
}
返回14.1
。
我是PHP的新手,这里发生了什么?
答案 0 :(得分:6)
这两个函数都返回14.142135623731。
答案 1 :(得分:2)
你确定吗?这很奇怪,因为这两个函数完全相同。
我在我的环境中尝试了这两种方法(使用你问题中的剪切和粘贴),并且都返回14.142135623731。
答案 2 :(得分:1)
对于特定版本的PHP,它一定是奇怪的,因为我的工作正常(5.3.3)。
答案 3 :(得分:1)
您可能犯了某种错字 - 两种版本都能正常使用(请参阅http://codepad.org/1gFCTPfU作为证据)。
另外,如果您没有描述某个类的静态方法,则应将public static function dist2d(
替换为function dist2d(
,否则您将得到解析错误,如下所示:http://codepad.org/GkMfFqlo