2. 함수
함수(function)
• 함수는 한번 정의될 수 있는 코드 블록이며 프로그램의 다른 부
분에서 작동시킬 수 있다.
• 함수는 반환값, 함수 이름, 전달 인자, 함수 내용으로 구성.
• 모듈화하여 알기 쉽고 구조화된 응용 프로그램 작성.
자주 반복되어야 하는 코드를 함수로 만들어 한 곳에 저장하고
프로그램의 필요한 곳에서 호출하여 사용한다.
function 함수 이름 (매개변수의 리스트) {
함수 본문
return 반환값
} // 함수 정의
호출시 함수 이름(전달인자의 리스트)
한림대학교 웹데이터베이스 - 이윤환
4. 전달 인자의 여러가지 성질
• Passed by reference
• 일반적으로 전달인자에 의해 값이 전달되는 것
은 값에 의한 전달을 하나 참조에 의한 전달이
필요할 때 함수 선언시 전달인자의 이름 앞에 “&”
를 붙힌다.
• Example : cbr.php
한림대학교 웹데이터베이스 - 이윤환
5. function swap_cbr(&$a, &$b) {
echo "Into the function swap_cbr<br />";
printf("Before Swap<br /> $a = %s, $b = %s<br />", $a, $b);
$temp = $a;
$a = $b;
$b = $temp; $b
} $a 위치
위치 전달
$a = 3; 전달
$b = 5;
echo "Call swap_cbr()<br />";
swap_cbr($a, $b);
printf("After Swap<br /> $a = %s, $b = %s<br />", $a, $b);
한림대학교 웹데이터베이스 - 이윤환
6. • 기본 전달 인자
• 호출시 해당 인자를 호출하지 않아도 기본값처
럼 인식되는 전달 인자를 만들수 있다.
• 선언시 전달인자 = “기본값”의 형태로 선언한다.
• Example : dparam.php
한림대학교 웹데이터베이스 - 이윤환
7. function makeyogurt ($type = "acidophilus", $flavour) {
return "Making a bowl of $type $flavour.n";
}
@printf("%s", makeyogurt ("raspberry"));
function makeyogurt2 ($flavour, $type = "acidophilus"){
return "Making a bowl of $type $flavour.n";
}
echo "<br />";
echo makeyogurt2 ("raspberry","aaaaa");
한림대학교 웹데이터베이스 - 이윤환
8. 변수의 범위와 수명
변수의 범위는 프로그램의
어떤 부분에서 변수를 액세
스 할 수 있는지 결정한다.
• global 변수
명, $GLOBALS[“변수명”]
Local
• Example : globals.php
정적 변수 : 한번만 초기화
되고 계속 값을 유지한다.
• static 변수명 Global
• Example : static.php
한림대학교 웹데이터베이스 - 이윤환
9. PHP 기본문법 – 변수 일반
변수
• 여러 가지 값으로 변할 수 있는 그릇
• 메모리상 특정 공간에 이름을 붙여 값을 저장
• 변수 표기 : $식별자 (Ex. $title)
• 변수임을 표시하는 기호 ‘$’와 변수의 이름이 되는 식별자
를 붙여놓은 형식.
자료형(Type)
• (효율적으로)자료들을 관리하기 위해 변수의 종류 필요
• 진리값, 정수, 부동소수점수, 문자열, 배열, 객체, 리소스, 널
(NULL) 등 8가지.
한림대학교 웹데이터베이스 - 이윤환
11. 반복문(LOOP)
for : 전통의 반복문
• for문은 전통의 반복문으로 조건식이 참인 상황
에서만 반복 수행할 문을 수행한다.
• for문은 진입조건 Loop이며 그 의미는 처음에 for
문에 진입하기 위해서 조건식이 참이어야 한다
는 뜻이다. 즉 진입시(처음부터) 조건식이 거짓
이면 Loop를 수행하지 않는다.
for(초기식 ; 조건식 ; 증감식) {
반복수행할 Code Block
}
한림대학교 웹데이터베이스 - 이윤환
14. 조건식만 존재하는 반복문 – while
• while문은 역시 반복문으로 조건식이 참인 상
황에서만 반복 수행할 문을 수행한다.
• 코드 블록 내에서 조건의 대상이 상태가 변하
여 false가 되면 반복 블록을 탈출한다.
• while 역시 진입조건 Loop이다
while(조건식) {
반복수행할 Code Block
}
한림대학교 웹데이터베이스 - 이윤환
16. 조건문
양자 택일문 - if
• if문은 전통의 조건 처리문으로 조건이 참인지 거짓인지 두가지만을
판단하여 처리하는 문이다.
• if문은 확장 사용하여 다중 조건 처리가 가능하다. (else if 사용)
If (조건) {
조건이 참일때 실행할 Code Block
} else {
조건이 거짓일때 실행할 Code Block
}
한림대학교 웹데이터베이스 - 이윤환
19. 다중 택일문 switch
• switch문은 다중 택일문으로 조건의 상황에 따른 실
행 코드를 선택할 수 있도록한다.
• if문과의 차이는 if는 조건이 참과 거짓만을 구분하는
비해 조건의 상태에 따른 구분을 한다.
switch (조건) {
case 경우 1:
문장;
break;
…
default :
문장;
break;
}
한림대학교 웹데이터베이스 - 이윤환
21. 그 외의 반복문
유일한 탈출조건 loop : do ~ while
• 구조
do {
반복 수행할 코드 블럭
} while (수식)
• 기본적인 사용법은 while과 동일
• 반복 수행할 코드 블록을 무조건 한번 수행한 후에 수식이 참이면 반
복하고 거짓이면 반복을 종료한다.
한림대학교 웹데이터베이스 - 이윤환
23. 그 외의 반복문
배열 탐색에 편리한 foreach
• 구조
foreach (배열명 as 값이 저장될 변수) {
반복할 코드 블럭
}
foreach (배열명 as 키가 저장될 변수 => 값이 저장될 변수) {
반복할 코드 블럭
}
• 일반 배열(인덱스로 배열 원소 지정)의 경우 현재의 배열원소에서
끝까지 반복을 하면서 원소의 값을 값이 저장될 변수에 저장한다
• 연관배열(문자열 키로 배열 원소 지정)의 경우 현재의 배열원소에서
끝까지 반복을 하면서 키를 키가 저장될 변수에 저장하고 해당 원소
의 값을 값이 저장될 변수에 저장한다
한림대학교 웹데이터베이스 - 이윤환