PHP에서 '<? ='은 무슨 뜻입니까?


답변:


229

에 대한 속기입니다 <?php echo $a; ?>.

설정에 관계없이 5.4부터 기본적으로 사용됩니다 php.ini.


1
PHP 7에서 사용할 수 있습니까?
zachdyer

4
마지막 세미콜론은 필요하지 않습니다. 그러나 어떤 이유로, 당신은 고전 태그로 돌아갈 필요가있는 경우, 간단한 프로젝트 전체 검색 / 교체 <?=를 위해 <?php echowould'nt 충분하다. 어쨌든 오늘은 PHP <5.6을 실행하는 프로덕션 서버가 더 이상 유지되지 않기를 바랍니다 ( PHP 지원 버전 ).
TwystO

47

이것은 속기입니다.

<?php echo $a; ?>

이를 짧은 태그라고합니다. 설명서의 예제 # 2를 참조하십시오 .


12
아래 답변에서 언급 한대로 모든 서버가 짧은 태그를 지원하지는 않습니다. 그들은 php.ini를 요구합니다short_open_tag = On
Corey Ballou

17

그것이 의미하는 것을 반복하기 위해 어떤 값도 추가하지 않기 때문에 echoPHP에서 의미하는 것이 무엇인지 정확하게 알고 싶다고 생각 했습니다 .

Array
(
    [0] => Array
        (
            [0] => 368 // T_OPEN_TAG_WITH_ECHO
            [1] => <?=
            [2] => 1
        )
    [1] => Array
        (
            [0] => 309 // T_VARIABLE
            [1] => $a
            [2] => 1
        )
    [2] => ; // UNKNOWN (because it is optional (ignored))
    [3] => Array
        (
            [0] => 369 // T_CLOSE_TAG
            [1] => ?>
            [2] => 1
        )
)

이 코드를 사용하여 직접 테스트 할 수 있습니다.

$tokens = token_get_all('<?=$a;?>');
print_r($tokens);
foreach($tokens as $token){
    echo token_name((int) $token[0]), PHP_EOL;
}

로부터 해석기 토큰 목록 , 여기에 무엇을 T_OPEN_TAG_WITH_ECHO 링크입니다 .


토큰이 더 자세한 내용을 알려주지 못했습니다.
user198729


7

PHP 5.4.0부터 <?= ?> php.ini에 short_open_tag를 설정하지 않아도 항상 사용할 수 있습니다.

또한 PHP 7.0부터 ASP 태그 : <%, %> 및 스크립트 태그 <script language="php"> 가 PHP에서 제거되었습니다.




3

더 이상 사용되지 않기를 바랍니다. 글쓰기 <? blah code ?>는 XHTML과 상당히 불필요하고 혼란 스럽지만 <?=, 명백한 이유는 아닙니다. 불행히도 short_open_tag가 점점 비활성화되어있는 것처럼 보이기 때문에 사용하지 않습니다.

업데이트 :<?= PHP 5.4.0에서 기본적으로 활성화되어 있기 때문에 다시 사용 합니다. http://php.net/manual/en/language.basic-syntax.phptags.php 참조

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.