이것은 상당히 혼란 스럽습니다. 왜 이런 일이 발생하는지 이해할 수 없습니다. XAMPP에 PHP 5.6.15에서 Windows 8.1 Enterprise Edition을 실행하는 내 로컬 호스트에json_decode()가 다른 환경에서 다른 값을 반환합니다.
<?php var_dump(json_decode('26-10-2017'));
반환
PHP 5.5.9과 우분투 14.04 LTS를 실행하는 Linode 상자에NULL
동안 on LAMP (Sentora Panel 실행 중)
얻을 수
int(26)
나는이 현상을 설명 할 수있는 누구에게나 많은 빚을지고있다.
나는 이것이 유효한 JSON이 아니라는 것을 알고 있지만, 출력의 차이를 일으키는 원인과이를 피하는 방법을 배우는 것이 나의 목적입니다.
나는 사실 나는 그러나, 어떤 오류를 표시하지 않는 것
function isValidJSON($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
을 시도하고 있었다,
json_last_error()
을 시도했다.
<?php var_dump(json_decode('26-10-2017')); var_dump(json_last_error());
반환
int(26)
int(0)
감사합니다!
처음에는 유효하지 않은 JSON입니다. 왜 다른 값을 반환하는지에 대한 질문은 흥미 롭습니다 (아마도 HHVM 대 PHP 적절한 버전 및/또는 다른 버전 ...?). 그러나 궁극적으로 이것은 전혀 작동하지 않아야합니다. – deceze
FWIW, 일부 5.2.x 버전은 https://3v4l.org/Y0DEH - 여기에 'null'이 아닌 다른 것을 반환합니다. 어느 쪽이든 PHP 버그입니다. – deceze