개발일기

블레이드 템플릿 2탄 - @for, @while, @foreach 반복문 본문

프로그래밍 언어/PHP - Laravel

블레이드 템플릿 2탄 - @for, @while, @foreach 반복문

Flashback 2021. 7. 5. 17:00
728x90
반응형

지난 포스팅에 이어 블레이드 템플릿의 반복문에 대해 알아보겠다.

 

1. @for

템플릿엔진이 아닌 프로그래밍언어를 통해 for문을 사용할 때는

hello가 10번 출력된다.

 

이런 식으로, 초기 변수값과 증감값, 반복범위를 지정해준 후, 한 번 실행될 때 마다 실행될 코드를 작성하는 방식으로 반복문을 작성한다.

블레이드 템플릿에서도 for 반복문을 사용하는 방식은 이와 비슷하다.

@for($i=0; $i < 10; $i++)
    <div>
        <p>good</p>
    </div>
@endfor

 

아마 이미 눈치를 챘을 것이다. 명령어 앞에 @만 붙이면 된다는 것을 말이다. 하지만 중요한 것은 @endfor도 붙여줘야 한다는 것이다. 

다른 언어의 for문과 다른점으로는 {} 중괄호가 붙어있지 않다는 것이다. 중괄호는 여러줄을 반복할 때, 반복문의 시작과 끝을 명시해주는 것이지만 블레이드 템플릿에서는 중괄호를 사용하지 않는다. 그렇기에 @endfor를 통해 반복문의 끝을 알려준다. 실수로 @endfor를 명시해주지 않을 경우에는 <div> <p> good </p> </div> 아래에 있는 다른 HTML태그도 반복되어 실행되는 레이아웃붕괴를 목격하게 될 것 이다.

 

2. @while

while문도 기존 while문과 비슷하다.

블레이드 템플릿의 while문

i의 초기값은 0, 반복범위는 i가 10일 때까지, i가 1씩 증가하면서 반복되는 구문을 만들어 보았다. 한 번 반복할 때마다 i의 값을 나타내는 문단이 생성된다. @for문과 마찬가지로 @while문은 @endwhile로 반복의 마지막부분을 지정한다.

 

3. @foreach

다음은 블레이드 템플릿의 @foreach문이다.

블레이드 템플릿의 foreach문. (약간 복잡할지도?)

@foreach문은 주로 배열이나 객체를 풀어서 나열할 때 사용한다. 먼저 $posts는 배열이나 객체 타입의 변수를 뜻한다. $k는 인덱스값, v는 해당 인덱스의 값을 나타낸다.

예를 들어 $posts가 [ "서울", "경기", "인천", "강원", "충북" ] 이라는 배열로 구성되어있다면 $k는 0, 1, 2, 3, 4로 반복될 때 마다 인덱스값이 증가할 것이다 $v는 "서울", "경기", "인천", "강원", "충북"이라는 배열값이 반복될 때 마다 값이 바뀌어서 출력되는 것을 확인할 수 있다. 

 

4. 정리

블레이드 템플릿에서 자주 쓰이는 반복문 구문인 @for, @while, @foreach를 알아보았다. 물론 템플릿이 엔진뿐만 아니라 다른 프로그래밍언어에서도 이 세가지 타입의 반복문은 매우 자주 사용되며 선언하는 방식도 거의 100%일치한다. 하지만 라라벨을 기반으로한 블레이드 템플릿엔진에서는 명렁어 앞에 @를 붙이고 반복문의 마지막 시점에는 @end~를 써넣으면 되는 간단한 규칙이 추가되어있다. 이러한 약간의 변동사항만 숙지를 하면 화면에서 각종 내용들을 반복하여 출력할 때, 오류없이 화면을 구성할 수 있을 것이다.

 

 

다음 번 포스팅에는 블레이드 템플릿의 조건문과 관련된 내용을 포스팅할 예정이다. 조건을 지정하여 조건에 따라 다른 내용을 출력하고자 하는 경우가 종종 존재하기에 조건문에 대해 다뤄보고자 한다.

 

https://laravel.kr/docs/8.x/blade#loops

 

라라벨 8.x - 블레이드 템플릿

라라벨 한글 메뉴얼 8.x - 블레이드 템플릿

laravel.kr

(반복문 관련 공식문서이다.)

728x90
반응형
Comments