오늘은 웹프로그래밍 입문 관련 공부 4번째 시간으로 PHP에서의 함수 선언과 호출에 대해서 공부해 볼 예정이다.
기본적인 함수의 사용과 특이점 위주로 정리해 볼 생각이다.
주로 실제 프로그래밍을 돌려보면서 결과 위주로 정리를 하겠다.
그럼 PHP에서 함수에 대해 간단하게 학습 해보자.
1. PHP 함수
- PHP를 매우 풍부한 언어로 만들어 주는 수백 개의 미리 생성된 내장 함수가 있다.
- 내장 함수 예
1 2 3 4 5 6 7 | <?php echo strrev(" .dlrow olleH") . "<br>"; //문자열 반전 echo str_repeat("Hip ", 3) . "<br>"; //문자열 반복 echo strtoupper("hooray!") . "<br>"; //대문자로 변경 echo strtolower("HOORAY!") . "<br>"; //소문자로 변경 echo ucfirst("hOORAY!") . "<br>"; //첫 글자만 대문자로 변경 ?> | cs |
- 실행 결과
2. 함수 정의
- 함수 정의의 일반적인 문법은 다음과 같다.
1 2 3 4 | function function_name([parameter [, ... ]]) { //문장 } | cs |
1) 정의는 function 키워드로 시작한다.
2) 함수명은 문자나 밑줄로 시작하며, 길이 상관 없이 문자, 숫자, 밑줄을 사용할 수 있다.
3) 매개 변수는 콤마(,)로 분리되며 매개 변수의 수는 선택 사항이다.
4) 함수명은 대수문자를 구분하지 않는다. 따라서, PRINT, Print, PrInT는 모두 동일한 print 함수를 의미한다.
- 함수 정의 예제
1 2 3 4 5 6 7 8 9 10 | <?php $a = 14; $b = 17; echo "$a + $b = " . add($a, $b) . "<br>"; echo "$a + $b = " . ADD($a, $b) . "<br>"; //대소문자 구분하지 않는다. function add($num1, $num2) { return ($num1 + $num2); } ?> | cs |
- 실행 결과
3. 배열 반환
- 함수에서 여러 값을 반환하기 위해 배열을 return 하는 것이 가능하다.
- 배열 반환의 예
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $names = fix_names("WILLIAM", "henry", "gatES"); echo $names[0] . ", " . $names[1] . ", " . $names[2] . "<br>"; function fix_names($n1, $n2, $n3) { $n1 = ucfirst(strtolower($n1)); $n2 = ucfirst(strtolower($n2)); $n3 = ucfirst(strtolower($n3)); return array($n1, $n2, $n3); } ?> | cs |
- 실행 결과
4. 전역 변수 반환
- 전역 변수를 선언함으로써 외부에서 만들어진 변수를 함수 내에서 접근할 수 있게 할 수 있다.
- 전역 키워드와 변수명을 사용해 코드의 어느 곳에서나 접근 가능하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php $a1 = "WILLIAM"; $a2 = "henry"; $a3 = "gatES"; echo $a1 . " " . $a2 . " " . $a3 . "<br>"; fix_names(); echo $a1 . " " . $a2 . " " . $a3 . "<br>"; function fix_names() { global $a1; $a1 = ucfirst(strtolower($a1)); global $a2; $a2 = ucfirst(strtolower($a2)); global $a3; $a3 = ucfirst(strtolower($a3)); } ?> | cs |
- 실행 결과
5. 파일 포함과 요구
- 다른 파일을 포함하고나 요구하여 새로운 파일에 기존 파일을 추가해 넣을 수 있다.
- 포함의 경우, include와 include_once 두가지 키워드가 존재한다.
- include는 파일 내용을 그대로 새 파일에 불러오는 명령어 이다.
- include_once는 기본적으로 include와 기능이 동일하지만, 중복을 제거한다는 특징이 있다.
- include 사용 예제
1) index.php
1 2 3 4 5 6 7 | <?php echo "START index.php." . "<br><br>"; include "library.php"; echo "<br><br>"; include "library2.php"; echo "<br><br>" . "END index.php" ?> | cs |
1 2 3 | <?php echo '<font color = "blue">Test Format<br>This page will be included.</font>'; ?> | cs |
3) library2.php
1 2 3 | <?php include 'library.php' ?> | cs |
- 실행 결과
※ library.php 파일 내용이 2번 중복 처리되는 것을 확인할 수 있다.
- include_once 사용 예
* 다른 파일의 앞의 예제와 동일
[ library2.php ]
1 2 3 | <?php include_once 'library.php' ?> | cs |
- 실행 결과
- 파일이 절대적으로 필요하면 파일을 요구하면 된다.
- 표면적으로는 include와 require는 동일한 결과로 보여진다.
- 일반적으로 파일을 요구할 때는 항상 require_once를 사용하는 것을 권한다.
6. PHP 버전 호환성
- PHP는 개발이 진행된 언어로 여러 개의 버전이 있다.
- function_exists 함수를 이용해 함수가 정의되어 있는지 확인이 가능하다.
- function_exists 확인 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php if( function_exists("myFunc") ) { echo "Function exists"; } else { echo "Function does not exist - better write our own"; } function myFunc() { echo "MY Function!" . "<br>"; } ?> | cs |
- 실행 결과
※ 미리 정의된 내장 함수와 사용자 정의 함수 모두 검사 가능하다.
이상으로 PHP 함수의 선언과 사용 관련된 내용의 정리를 마무리 한다.
다음 포스팅에서는 PHP 클래스 선언 방법과 객체 생성에 대해 확인해 보겠다.
'제대로알자, SW > 웹 프로그래밍' 카테고리의 다른 글
웹프로그래밍 입문(6) PHP 배열 활용 기법 (0) | 2017.07.05 |
---|---|
웹 프로그래밍 입문(5) PHP 클래스 및 객체 (0) | 2017.07.04 |
웹 프로그래밍 입문(3) - PHP 기본 문법 (0) | 2017.06.30 |
웹 프로그래밍 입문(2) - PHP 개발 환경 설정(XAMPP / NetBeans) (0) | 2017.06.29 |
웹 프로그래밍 입문(1) - 시작하기에 앞서 (0) | 2017.06.27 |