프로그래밍/PHP

기본 문법 (Basic Syntax)

지훈2 2016. 4. 2. 09:13

1. PHP 태그들 (PHP Tags)


● <?php  ?>


● 짧은 태그 허용 : <?  ?>   

    (비추천, php.ini 에서 short_open_tag 를 허용 또는 --enable-short-tags 옵션이 설정되어 있을 때만 가능하기 때문)


● 파일이 순수 PHP 코드로만 구성되어 있다면 PHP 닫는 태그를 뺄 것을 추천

    (PHP 닫는 태그 ?> 뒤에 공백이나 새줄로 인한 잘못된 결과가 나올 수 있기 때문)


<?php
echo "Hello world";

// ... more code

echo "Last statement";

// PHP 닫는 태그 없이 끝이 난다.

※ 여는 태그 <?php 뒤에는 공백류을 하나 두어야 작동된다.
    공백류: 탭(\t), 뉴라인(\n), 캐리지 리턴(\r), 스페이스 문자(\s)

1. 
<?php/*blah*/ echo "a"?>    // 작동 안됨

2. 
<?php /*php 뒤에 공백 추가*/ echo "a"?>     // 작동 됨

3. 
<?php
/*php 뒤에 뉴라인 추가*/ echo "a"?>    // 작동 됨

4. 
<?php    /*php 뒤에 탭 추가*/ echo "a"?>    // 작동 됨



2. HTML 로부터 탈출 (Escaping from HTML)


● PHP 의 여는 태그와 닫는 태그 이외의 모든 것은 PHP 파서에 의해 무시된다.

<p>PHP에 의해 무시되고 브라우저에 의해 표시된다.</p>
<?php echo 'PHP에 의해 분석된다.'; ?>
<p>PHP에 의해 무시되고 브라우저에 의해 표시된다.</p>



● 조건문을 사용한 고급 탈출


    ○ 조건문이 충족되지 않는 조건 블럭은 스킵된다.


    ○ 큰 텍스트 블럭을 출력할 때 echo 나 print 를 통해서 출력하는 것보다 이 방법이 더 효율적이다.


<?php if ($expression == true): ?>

  식이 true 면 표시된다.

<?php else: ?>

  아니라면 표시된다.

<?php endif; ?>




● PHP 5 에서 여는 태그와 닫는 태그가 5개까지 존재한다. PHP 설정에 따라 다르다.


1. <?php ?>

2. <script language="php"> </script>

3. 짧은 echo 태그 (PHP 5.4.0 이상에서 가능) : <?= ?>

4. 짧은 태그 : <? ?>

5. ASP 스타일 태그 : <% %>


  # 4, 5번 방식은 추천하지 않는 방식이다. 

  # PHP 7에서 2번과 5번 방식은 제거되었다.

  # 1번 <?php ?>, 3번 짧은 echo 태그만 호환성을 위해서 추천한다.

  # 3번 짧은 echo 태그는 php.ini 의 short_open_tag 설정과 상관없이 항상 인식된다.



● 여는 태그와 닫는 태그 예제


1.  <?php echo 'XHTML 이나 XML 문서에서 PHP 코드를 사용하고 싶다면 이런 태그들을 사용하라.'; ?>


2.  짧은 echo 태그 사용 : <?= '이 문장 출력' ?>.

    PHP 5.4.0 이후 버전에서 항상 사용 가능하고 <?php echo '이 문장 출력' ?> 과 같다.


3.  <? echo '이 코드는 짧은 태그 안에 있다, 하지만 short_open_tag 가 설정되어 있을 때 가능'; ?>


4.  <script language="php">

        echo '어떤 에디터들은 (예를 들면 프론트페이지)

              이러한 태그 안에 있는 명령어 처리를 좋아하지 않는다.';

    </script>

    이 문법은 PHP 7 에서 제거되었다.


5.  <% echo 'ASP 스타일 태그도 사용 가능하다.'; %>

    <%= $variable; %> 는 <% echo $variable; %> 의 축약 표현으로 같다.

    이 문법은 PHP 7 에서 제거되었다.


http://php.net/manual/en/language.basic-syntax.phpmode.php