lang/php

PHP7 Expectations - Assert() Expectations

C/H 2018. 8. 3. 08:30

Assert() Expections

Expectations는 이전 assert()함수에 대한 하위 호환성 향상입니다. 프로덕션 코드에서 비용이 없는 assertion을 허용하고 어설션이 실패 할 때 사용자 지정 예외를 throw하는 기능을 제공합니다.

이전 API는 호환성을 유지하기 위해 계속 유지되지만 assert()는 이제는 언어구문으로 제공되며, 첫 번째 매개 변수를 평가할 문자열 또는 테스트 할 부울 값이 아닌 표현식으로 사용할 수 있습니다.

운영환경에서 asert()기능을 구성하는 방법을 포함하여 기능에 대한 자세한 내용은 assert() > expectations절을 참조하세요.

Configuration for Assert() 설정 옵션

Directive

기본값

설정 가능 옵션

 zend.assertions

 1

 1 − generate and execute code (development mode)
          코드 생성 및 실행 (개발모드)
 0 − generate code but jump around it at runtime
          코드르 생성하지만 런타임 환경을 뛰어넘는다(벗어난다?)
-1 − do not generate code (production mode)
          코드생성 하지 않은다. (운영모드)

 assert.exception

 0

 1 − throw, when the assertion fails, either by throwing the object provided as the exception or by throwing a new AssertionError object if exception was not provided.
         평가 실패시 예외를 던지거나, AssertionError 객체를 던진다.
 0 − use or generate a Throwable as described above, but only generates a warning based on that object rather than throwing it (compatible with PHP 5 behaviour)
         위(1)에서 생성한 던질수 있는 객체를 생성하지만, 해당 객체를 기반으로 하는 에러 메세지만 던진다.


Parameters

assertion
PHP5 평가할 문자열/부울값. PHP7에서는 값을 반화하는 어떤 식이든 실행될수 있으며, 결과는 평가 성공/실패 여부를 나타낸다.
description
평가 실패시 실패 메세지에 포함될 설명.
exception
PHP7에서 2벉째 파라미터 description은 생략하고, exception 객체를 사용할 수 있다. 평가가 실패할 경우 사용자가 정의한 exceeption 객체가 반환된다.

Example

ini_set('assert.exception', 1);
class CustomError extends AssertionError {}
assert(false, new CustomError('Some error message'));

// Fatal error: Uncaught CustomError: Some error message


반응형