PHP로 금형을 잘 사용하고 싶다면 선언해 주시겠어요?

5410 단어 PHPtech
<?php

function i(int: $n): int {
    return $n;
}

function f(float: $n): float {
    return $n;
}

$num = 1.1;

print_r([i($num), f($num)]);
// [1, 1.1]
flat로 되돌아오는 곳의 되돌아오는 값의 형식을 쓰기 :int하면 은밀하게 형식 변환이 진행됩니다.결과1.11였다.function f(float: $n)function f(int: $n)로 써도 1.1 -> 1로 바뀐다.
이런 상황을 방지하려면 수치가 int인지 flat인지 확인하고 코드를 써라. 이런 기분 자체가 중요하다
본질적으로 어렵게 쓴 유형의 정보를 보호하면서 살아남으려는 것이기 때문에 추가declare(strict_types=1);가 정답입니다.
<?php

declare(strict_types=1); // ここが差分

function i(int: $n): int {
    return $n;
}

function f(float: $n): float {
    return $n;
}

$num = 1.1;

print_r([i($num), f($num)]);
// PHP Fatal error:  Uncaught TypeError: Argument 1 passed to i() must be of the type int, float given, called in /Users/bko/test.php on line 15 and defined in /Users/bko/test.php:5
// Stack trace:
// #0 /Users/bko/test.php(15): i()
// #1 {main}
괴롭다

좋은 웹페이지 즐겨찾기