PHP ??? ?? ? ?? ? ?? ??
??? ?? ??
????? ?? PHP ??? ?? ?? ?? ?????.
PHP 7?? ??? ?? ?? ??? ???????. ??? ?? ???? ? ?? ??? ????.
?? ??(???)
?? ??
??? ?? ?? ?? ??:
declare(strict_types=1)
code strict_types ?(1 ?? 0)? ???? 1? ?? ?? ? return ?? ???? ??? ?? ?? ??? ????, 0? ?? ?? ?? ??? ?????.
declare(strict_types=1)? ??? ? ?? ???? ???. ? ???? ??? ?? ?? ???? ??? ??? ???? ?? ??? ????? ?????.
strict_types ???? ??? ??? ??? ??? ??? ?? ???? ??? ??? ????(include ?? ??). ? ???? ???? ????? ??? ? ????. ?? ??? ?? ??? ?? ?? ??? ?? ?? ??? ????? opcode? ???? ???? ????.
?? ??? ?? ????? ??? ????:
int
float
bool
???
?????
??
?? ??
force ?? ????
instance
<?php // 強(qiáng)制模式 function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
?? ???? ?? ?? ??? ??? ????.
9
?? ?? ???? 4.1? ?? 4? ??? ? ?????.
?? ?? ??
Instance
<?php // 嚴(yán)格模式 declare(strict_types=1); function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
? ????? ?? ??? ?????, ???? ??? ??? ???? ?? ?? ??? ??? ????.
PHP ???? ??: Uncaught TypeError: sum()? ??? ?? 2? ??, ??? ???, ??? ????? ???. ...
?? ?? ??
PHP 7??? return ??? ???? ?? ?? ??? ?? ??? ???????. ?.
??? ? ?? ?? ??? ??? ????:
int
float
bool
???
?????
??
?? ??
?? ?? ?? ????
?????? ?? ??? ???? ???.
instance
<?php declare(strict_types=1); function returnIntValue(int $value): int { return $value; } print(returnIntValue(5)); ?>
? ???? ?? ?? ???
5
?? ?? ?? ?? ????
????
<?php declare(strict_types=1); function returnIntValue(int $value): int { return $value + 1.0; } print(returnIntValue(5)); ?>
? ????? strict ??? ???? ??? ?? ?? int?? ??? ?? ??? float??? ?? ?? ??? ??? ????.
Fatal error. : ??? ?? ?? ??: returnIntValue()? ?? ?? ??, ?? ??? ????? ???...