(PHP 4 >= 4.1.0, PHP 5)
hypot — Länge der Hypotenuse eines rechtwinkligen Dreiecks
hypot() berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks aus den Längen der beiden Katheten bzw. den Abstand eines Punktes (x,y) vom Ursprung. Dies entspricht sqrt(x*x + y*y).
Länge der ersten Kathete
Länge der zweiten Kathete
Berechnete Länge der Hypotenuse
to robinv at ecosse dot net:
hypo(a, b, c) === hypo(a, hypo(b, c))
hypo(a, b, c, d) === hypo(a, hypo(b, hypo(c, d)))
...
A correct implementation of hypot( x, y ) avoids the overflow that might otherwise happen if either x or y is large enough that when squared it would overflow, but the answer is small enough not to cause overflow.
A simpler approach would be to allow an arbitrary number of parameters. That would allow for whatever number of dimensions you want *and* it would be backwards compatible with the current implementation.
<?php
function hypo()
{
$sum = 0;
foreach (func_get_args() as $dimension) {
if (!is_numeric($dimension)) return -1;
$sum += pow($dimension, 2);
}
return sqrt($sum);
}
print hypo(); // vector in 0 dimensions, magnitude = 0.
print hypo(1); // vector in 1 dimension, magnitude = 1.
print hypo(3, 4); // vector in 2 dimensions, magnitude = 5.
print hypo(2, 3, 6); // vector in 3 dimensions, magnitude = 7.
?>