PHP로 금형을 잘 사용하고 싶다면 선언해 주시겠어요?
<?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.1
는 1
였다.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}
괴롭다
Reference
이 문제에 관하여(PHP로 금형을 잘 사용하고 싶다면 선언해 주시겠어요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/bko/articles/0d27732cb0eb8f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)