본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP foreach · function · break · continue · require 완전 정리

by 왕진 2026. 6. 11.
반응형

 

 

Web Development · PHP

PHP foreach 심화 · 함수 · break · continue
require로 코드 분리까지

key⇒value 순회, 매개변수, 기본값, 흐름 제어, 외부 파일 임포트
시작 코드를 재사용 가능하게 만드는 도구

이번엔 foreach로 키와 값을 함께 다루기, 함수를 만들고 호출하기, break/continue로 반복 제어, require로 다른 파일의 코드 가져오기까지. PHP 프로그램을 재사용 가능한 단위로 쪼개는 기술들이다.


용어 핵심 키워드
foreach as $k=>$vkey, value 동시 추출
function함수 정의 키워드
매개변수(parameter)함수가 받는 입력 변수
인자(argument)호출 시 전달하는 값
기본값 매개변수function f($x = 10)
break반복 즉시 종료
continue현재 회차 건너뛰고 다음으로
require외부 파일 포함 (실패 시 fatal)
include외부 파일 포함 (실패 시 warning)
_once 변형한 번만 포함 (중복 방지)

1 foreach — key와 value 함께 가져오기
<?php $member = array("name" => "○철수", "age" => 20, "tall" => 170); foreach ($member as $key => $value) { print "$key : $value"; print "<br>"; } ?>
출력
localhost/foreach2.php
name : ○철수
age : 20
tall : 170
key에 따라 한국어 라벨로 매핑
foreach ($member as $key => $value) { if ($key == "name") $title = "이름"; elseif ($key == "age") $title = "연령"; elseif ($key == "tall") $title = "신장"; print "$title : $value<br>"; } // 이름 : ○철수 // 연령 : 20 // 신장 : 170
💡 더 깔끔한 방법 — 매핑이 많으면 별도 배열로 분리하면 가독성이 좋다. $labels = ["name" => "이름", "age" => "연령"]; print $labels[$key];

2 function — 코드를 재사용 단위로
<?php function print_copyright() { print "<font size=2>"; print "Copyright 2013 여러분의 이름 All rights reserved."; print "</font>"; } print_copyright(); // 호출 — 같은 작업을 여러 번 가능 ?>

함수는 같은 일을 여러 곳에서 쓰기 위한 묶음이다. 푸터의 카피라이트, 로그 출력, 입력 검증 등 반복되는 코드를 함수로 빼면 한 곳만 수정해도 전체에 반영된다.


3 매개변수 — 외부 값을 함수 안으로
<?php $myage = 19; // 전역 변수 check_adult($myage); // 호출 — $myage가 $age로 전달 function check_adult($age) { // $age = 매개변수 (지역변수) $adult_age = 20; // 함수 안 지역변수 $adult_check = ($adult_age <= $age) ? "어른" : "아이"; print $adult_check." 입니다."; } ?>
📌 함수 정의가 호출 뒤에 있어도 동작한다 — PHP는 호이스팅 비슷하게 함수를 먼저 등록하고 실행 시점에 찾는다.
용어 의미 예시
매개변수 (parameter) 함수 정의 시의 변수 function f($age) {}
인자 (argument) 호출 시 전달하는 값 f(19);
지역변수 함수 안에서만 유효 $adult_age
전역변수 스크립트 어디서나 $myage

반응형
4 기본값 매개변수 — 인자 생략 허용
<?php check_member(); // 인자 없이 호출 → 기본값 사용 function check_member($username = "guest", $password = "guest") { if ($username == "guest" && $password == "guest") { print "게스트님 환영합니다!"; } else { print "회원님 환영합니다!"; } } ?>

호출 시 check_member();처럼 인자를 안 주면 기본값 "guest"가 들어간다. check_member("admin", "1234")처럼 주면 그 값이 사용된다.

기본값은 뒤쪽 매개변수에만function f($a = 10, $b)처럼 앞쪽에만 기본값을 두면 사용이 어렵다. 뒤로 갈수록 기본값을 두는 게 관례.

5 break — 반복 즉시 종료
<?php $member[0] = "○철수"; $member[1] = "○영희"; $member[2] = "○길동"; $member[3] = "○정자"; $member[4] = "○희동"; $i = 1; $limit = 3; foreach ($member as $key => $value) { if ($i > $limit) { print "반복을 빠져나옵니다.<br>"; break; // 반복문을 즉시 종료 } print "이름 : $value"; print "<br>"; $i++; } ?>
출력 — 3명까지만
localhost/break.php
이름 : ○철수
이름 : ○영희
이름 : ○길동
반복을 빠져나옵니다.

6 continue — 이번 회차만 건너뛰기
<?php $member = array("name" => "○철수", "tel" => "03-0000-0000", "age" => 20, "tall" => 170); foreach ($member as $key => $value) { if ($key == "name") $title = "이름"; elseif ($key == "age") $title = "연령"; elseif ($key == "tall") $title = "신장"; else { print "처리를 건너뜁니다.<br>"; continue; // 다음 반복으로 — print 건너뜀 } print "$title : $value<br>"; } ?>
break
  • 반복문을 완전히 종료
  • 이후 회차는 안 돌아옴
  • "여기까지만 보고 끝"
continue
  • 현재 회차의 남은 부분만 건너뜀
  • 다음 회차는 정상 진행
  • "이건 패스, 다음 거 봅시다"

7 require — 다른 파일 가져오기

같은 데이터를 여러 페이지에서 쓰거나, 함수 모음을 여러 곳에서 호출할 때 require로 가져온다. 가져온 파일의 변수와 함수는 마치 그 자리에 직접 쓴 것처럼 동작한다.

data.php
<?php
$name = "○철수";
$message = "등록 감사드립니다.";
?>
require.php
<?php
require("data.php");
print "$name 님<br>";
print "$message";
?>
<!-- require.php --> <html><head><title>PHP 테스트</title></head><body> <?php require("data.php"); // data.php의 모든 코드를 여기에 붙여넣기 print "$name 님<br>"; // data.php의 $name 사용 가능 print "$message<br>"; ?> </body></html>
require · include · _once 4가지
구문 파일 없을 때 중복 호출 사용 예
require Fatal Error — 스크립트 중단 여러 번 가능 필수 라이브러리
include Warning — 계속 실행 여러 번 가능 선택적 컴포넌트
require_once Fatal Error 한 번만 포함 클래스 정의 (중복 정의 방지)
include_once Warning 한 번만 포함 설정 파일 등
※ 어떤 걸 쓸까
  • require_once — 가장 흔히 권장. 필수 + 중복 방지
  • require — 매 호출마다 다시 실행해야 할 때 (드물다)
  • include — 없어도 페이지가 동작해야 할 때

8 자주 하는 실수
증상 원인 해결
foreach key가 출력 안 됨 $value만 받음 $key => $value 형태로
함수 안의 변수가 밖에서 안 보임 지역변수 — 함수 끝나면 사라짐 return으로 반환 또는 global
require 후 변수 못 찾음 경로 문제 __DIR__ . '/data.php' 사용
같은 함수 정의 중복 에러 require로 두 번 포함 require_once 사용
continue가 안 먹힘 중첩 루프에서 의도와 다른 루프 continue 2; 처럼 레벨 지정
인자 부족 경고 매개변수에 기본값 없음 = "guest"처럼 기본값 추가

9 핵심 한 줄 요약

PHP — FUNCTION & LOOP CONTROL

key+value 순회foreach ($arr as $k => $v) { ... }
함수 정의function 이름($파라미터) { ... }
기본값 인자function f($x = 10) — 인자 생략 가능
반복 종료break — 즉시 빠져나옴
회차 건너뜀continue — 이번만 패스, 다음 회차는 진행
파일 포함 (필수)require / require_once
파일 포함 (선택)include / include_once
함수 호이스팅정의가 호출 뒤에 있어도 OK

Tags

#PHP #foreach #function #매개변수 #기본값매개변수 #break #continue #require #include #requireOnce #티스토리
▼ 티스토리 태그 입력란 복사용
PHP, foreach, function, 매개변수, 기본값매개변수, break, continue, require, include, requireOnce, 티스토리
반응형

댓글