source

PHP 5 엄격한 표준 사용 안 함 오류

goodcode 2022. 9. 19. 23:38
반응형

PHP 5 엄격한 표준 사용 안 함 오류

엄격한 기준에 따라 오류 보고를 비활성화하려면 상단에 PHP 스크립트를 설정해야 합니다.

누구 도와줄 사람 있어?

오류 보고를 비활성화하시겠습니까, 아니면 사용자에게만 표시되지 않도록 하시겠습니까?일반적으로 프로덕션 사이트에서도 오류를 기록하는 것이 좋습니다.

# in your PHP code:
ini_set('display_errors', '0');     # don't show any errors...
error_reporting(E_ALL | E_STRICT);  # ...but do log them

표준 시스템 로그에 기록되거나error_logdirective를 지정해, 에러를 송신할 장소를 지정합니다.

오류는 없습니다.

error_reporting(0);

아니면 엄하지 않은 것 때문에

error_reporting(E_ALL ^ E_STRICT);

모든 오류를 다시 표시하려면

error_reporting(-1);

위의 솔루션은 모두 정답입니다.단, 일반 PHP 어플리케이션에 대해서는 필요한 모든 페이지에 포함해야 합니다.이 문제를 해결하는 방법은.htaccessroot 폴더에 있습니다.실수를 감추기 위해서요[파일에 팔로우 라인 중 하나를 넣으세요]

php_flag display_errors off

또는

php_value display_errors 0

다음으로, 에러 리포트를 설정합니다.

php_value error_reporting 30719

그 가치가 궁금하다면30719comed, E_ALL(32767), E_STRICT(2048)는 실제로 수치값을 유지하는 상수입니다.32767 - 2048 = 30719)

error_reporting 플래그의 기본값은 php.ini로 설정되어 있지 않은 경우 E_ALL & ~E_NOTICE 입니다.다만, 일부의 인스톨(특히 개발 환경을 대상으로 한 인스톨)에서는, 이 플래그의 값으로서 E_ALL | E_STRICT 가 설정되어 있습니다(이것은 개발중에 권장되는 값입니다).특히 PHP 5.3보다 이전에 개발되어 PHP 5.3에 의해 정의된 베스트 프랙티스로 아직 업데이트되지 않은 오픈 소스 프로젝트를 개발 환경에서 실행하고자 할 경우, 다음과 같은 메시지가 나타날 수 있습니다.이 상황에 대처하는 가장 좋은 방법은 다음과 같이 error_reporting 플래그의 값으로서 error_ini 또는 코드(아마도 web-root의 index.php와 같은 프론트컨트롤러)로 E_ALL만 설정하는 것입니다.

if(defined('E_STRICT')){
    error_reporting(E_ALL);
}

php.ini 집합:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

워드프레스

워드프레스 환경에서 작업하는 경우 워드프레스는 파일 wp-includes/load에 오류 수준을 설정합니다.php가 기능하고 있다wp_debug_mode()따라서 이 함수가 호출된 후 레벨을 변경하거나(git에 체크인되지 않은 파일 내), 또는 직접 수정해야 합니다.error_reporting()불러

깔끔하고 실제 가동 가능한 소프트웨어에 적합한 답변을 찾을 수 없었습니다.다음은 예를 제시하겠습니다.

/*
 * Get current error_reporting value,
 * so that we don't lose preferences set in php.ini and .htaccess
 * and accidently reenable message types disabled in those.
 *
 * If you want to disable e.g. E_STRICT on a global level,
 * use php.ini (or .htaccess for folder-level)
 */
$old_error_reporting = error_reporting();

/*
 * Disable E_STRICT on top of current error_reporting.
 *
 * Note: do NOT use ^ for disabling error message types,
 * as ^ will re-ENABLE the message type if it happens to be disabled already!
 */
error_reporting($old_error_reporting & ~E_STRICT);


// code that should not emit E_STRICT messages goes here


/*
 * Optional, depending on if/what code comes after.
 * Restore old settings.
 */
error_reporting($old_error_reporting);

언급URL : https://stackoverflow.com/questions/1248952/php-5-disable-strict-standards-error

반응형