檢查錯誤最安全的方法似乎不是檢查錯誤的數量,而是檢查警告的數量。請參考以下範例,其中「m」和「d」被交換,因此不正確。
<?php
var_dump( date_parse_from_format('m.d.Y', '18.10.2024') );
輸出:
陣列(12) {
["year"]=>
int(2024)
["month"]=>
int(18)
["day"]=>
int(10)
["hour"]=>
bool(false)
["minute"]=>
bool(false)
["second"]=>
bool(false)
["fraction"]=>
bool(false)
["warning_count"]=>
int(1)
["warnings"]=>
陣列(1) {
[10]=>
string(27) "The parsed date was invalid"
}
["error_count"]=>
int(0)
["errors"]=>
陣列(0) {
}
["is_localtime"]=>
bool(false)
}
?>
這個函式會直接將 18 指派給「month」欄位,而不會產生錯誤!!因此,只需使用 if 條件式並檢查「warning_count」即可偵測可能的錯誤。