phpday 2021 digital edition


(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

hypot Calcula o tamanho da hipotenusa de um ângulo reto do triângulo Retorna a raiz quadrada de (num1*num1 + num2*num2)


hypot ( float $x , float $y ) : float

hypot() retorna o tamanho da hipotenusa de um ângulo reto do triângulo com lado de tamanho x e y, ou a distância do ponto (x, y) de uma origem. O equivalente a sqrt(x*x + y*y).



Tamanho do primeiro lado


Tamanho do segundo lado

Valor Retornado

Tamanho calculado da hipotenusa

add a note add a note

User Contributed Notes 2 notes

Hayley Watson
3 years ago
If you need a higher-dimensional diagonal length (norm), you can exploit the fact that sqrt(x*x+y*y+z*z) == sqrt(x*x+sqrt(y*y+z*z)). In other words hypot(x, y, z)==hypot(x, hypot(y, z)).

To be generic about it....

function norm(...$args)
array_reduce($args, 'hypot', 0);

robinv at ecosse dot net
17 years ago
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.


function hypo()
$sum = 0;
    foreach (
func_get_args() as $dimension) {
        if (!
is_numeric($dimension)) return -1;
$sum += pow($dimension, 2);

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.

To Top