>  기사  >  백엔드 개발  >  PHP 상수 정의 문제

PHP 상수 정의 문제

WBOY
WBOY원래의
2016-09-27 14:18:111391검색

<code>class testClass {
    const FRUIT = ['apple','orage'];
}</code>

여기서 FRUIT 상수를 ['apple','orage']로 정의할 수 있나요(이것은 배열입니다. 그렇죠) FRUIT는 숫자나 문자열이면 안 되나요? 대답해주세요! !

답글 내용:

<code>class testClass {
    const FRUIT = ['apple','orage'];
}</code>

여기서 FRUIT 상수를 ['apple','orage']로 정의할 수 있나요(이것은 배열입니다. 그렇죠) FRUIT는 숫자나 문자열이면 안 되나요? 대답해주세요! !

상수는 변경할 수 없는 양일 뿐이며 숫자나 문자열일 필요는 없습니다.

PHP7은 defind()PHP70new-featres를 통해 배열 상수를 정의할 수 있습니다

예:

<code>    define('ANIMALS', [
        'dog',
        'cat',
        'bird'
    ]);

echo ANIMALS[1]; // outputs "cat"`
</code>

PHP7에서는 defind()를 제거하고 const를 직접 사용하여 상수 배열을 정의할 수도 있습니다

또한 PHP7은 상수 간의 연산도 지원합니다. 예: const A = 1; const B =3; const C = A + B;

PHP7부터 정의를 사용하여 상수 배열을 정의할 수 있습니다.
define('APP1', array(1,2,3)); var_export(APP1);
이전 버전의 PHP에서는 먼저 배열을 문자열로 직렬화한 다음 상수를 정의한 다음 역직렬화할 수 있습니다. 사용 시:
define('APP2', serialize(array(1,2,3))); var_export(unserialize(APP2));
PHP 5.6부터 const를 사용하여 상수 배열을 정의할 수도 있습니다.
const APP3 = array(1,2,3); var_export(APP3);

Const는 변수가 정의된 후에는 변경할 수 없다는 의미입니다. 배열이 const로 정의된 후에는 그 안의 요소를 더하거나 뺄 수 없습니다.
PHP 5.6.0 이전에는 이런 기능이 없었으나 지금은 사용 가능합니다

<code>/** @const */
private static $myArray = array(...);
</code>

대신.
이 기능은 5.6.0부터 추가되었으므로 이 코드를 실행하려면 PHP 버전 머신에 대한 특정 요구 사항이 있습니다.

5.6쯤부터 클래스에서 정의할 수 있는 것 같습니다

<code>class SomeClass {
    const FRUIT = ['apple','orage'];
}

// 取
echo SomeClass::FRUIT[0]; // apple</code>

단, 일부 IDE에서는 이를 잘 지원하지 않습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.