생활코딩 php 강의를 보면서 혼자만 대충 알아볼 수 있게 정리하는 포스팅,
이번에는 함수에 대해서 공부해보겠습니다.
지난 포스트
함수(function)란?
어떤 데이터가 전달(IN)이 되면, 그것에 응해서 함수 내부의 알고리즘을 거쳐 어떤 결과값을 돌려주는(OUT) 기능을 뜻합니다.
함수의 종류는 아래의 두가지 뿐입니다.
내부(Built-in) 함수
php에 기본으로 내장되어 있는 함수
예) strlen, nl2br, var_dump, isset 등등..
사용자(User) 정의 함수
사용자(우리)가 스스로 작성한 함수
함수 만들기 예고
이 영상에서와 같이 자주 반복해서 사용하는 코드를 함수로 만들어둬서 사용하면 코드의 중복도 줄일 수 있고, 눈으로 보기에도 더 깔끔한 코드를 만들 수 있습니다.
함수의 형식
<?php
function basic(){
print("Lorem ipsum dolor1<br>");
print("Lorem ipsum dolor2<br>");
}
basic();
?>
위의 코드와 같이 사용자 정의 함수를 만들고 호출할 수 있습니다.
<?php
basic();
function basic(){
print("Lorem ipsum dolor1<br>");
print("Lorem ipsum dolor2<br>");
}
?>
참고로 이렇게 함수를 실행하는 basic( )이 상단에 있고, 그 아래에 함수를 정의하는 코드가 온다고 하더라도 출력되는 결과는 같습니다.
함수를 배우기 이전에는 항상 코드는 위에서 아래로 차례대로 한 줄씩 실행이 됐었는데, 여기서는 예외입니다.
처음 배우는 초보자들에게는 이런 것도 하나하나 친절하게 설명을 해줘야 하는데, 예전에 제가 다녔던 학원에서는 이런 특성을 딱히 설명해주지 않아서 머릿속이 복잡해지고 패닉에 빠졌던 경험이 있었네요. ㅎㅎ
<?php
function sum($num1, $num2){
print($num1+$num2);
print("<br>");
}
sum(2,4);
sum(4,6);
?>
이렇게 함수에 값을 입력해서 입력한 값에 따라 다른 결과를 출력하는 함수를 만들 수도 있습니다.
이때 함수를 정의할 때 괄호( ) 안에 넣었던 변수 $num1과 $num2를 매개변수parameter라고 하고,
함수를 실행할 때 괄호( ) 안에 넣었던 2와 4, 4와 6 같이 함수로 전달되는 데이터를 인수argument라고 합니다.
<?php
function sum($num1, $num2){
return $num1+$num2;
}
print(sum(2,4));
file_put_contents('result.txt', sum(2,4));
?>
그리고 return이라는 코드로 값을 반환할 수도 있습니다.
반환된 값을 어딘가에 전송을 한다던지, 파일로 저장을 한다던지 할 수 있습니다.
함수의 활용
위의 생활코딩 강의 영상과는 또 다른 내용의 함수 예제 코드를 아래에서 한번 살펴보고 가겠습니다.
<?php
// $str에 16바이트가 넘는 문자열을 넣어보았다.
$str = 'abcd1234efgh5678i';
// $byte에 최대 허용 가능한 바이트 수를 입력
$byte = 16;
// checkByte() 함수에 $str과 $byte의 값을 인자로 넣고 그 결과로 반환된 값을 $flag에 넣는다.
$flag = checkByte($str, $byte);
if($flag){
// $flag가 true일 경우 이것을 출력
echo '패스워드가 설정되었습니다.';
}else{
// $flag가 false일 경우 이것을 출력
echo $byte.nl2br('Byte를 초과하였습니다.
패스워드를 다시 설정해주세요.');
}
// checkByte() 함수의 정의 시작
function checkByte($str, $byte){
// strlen() 함수를 이용해서 $str의 바이트 수를 $strlen에 할당한다.
$strlen = strlen($str);
// $strlen과 $byte의 값을 비교한다.
if($strlen <= $byte){
// $strlen이 $byte의 값보다 작으면 true를 반환
return true;
}
// $strlen이 $byte의 값보다 크면 false를 반환
return false;
}
?>
checkByte라는 사용자 정의 함수를 만들어서 사용하는 예제 코드입니다.
인수로 넘겨받은 $str에 할당된 문자열은 php 내부 함수인 strlen( )에서 바이트 수를 검사하고, 결과를 $strlen에 할당합니다.
if문에서는 $strlen과 $byte를 비교하여 지정된 바이트 이하일 경우에는 return으로 true를 돌려줍니다.
반대로 지정 바이트를 초과할 경우에는 false를 돌려줍니다.
위의 예제 코드에서 사용된 php 내부 함수인 strlen( )과 nl2br( )은 이전에 위의 포스트에서 나온 적이 있었습니다.
이 글이 도움이 됐다면 하단의 ♡ 공감 버튼을 꾹 눌러서
빨간 하트♥로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS에 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.
'그 외 프로그래밍 언어 > php' 카테고리의 다른 글
php, 게시판 글 생성 (feat. 페이지 이동 header) (0) | 2022.08.06 |
---|---|
php, CRUD (0) | 2022.08.05 |
php, 조건문과 반복문 실습 (feat. scandir 함수) (0) | 2022.08.03 |
php, 배열 array (0) | 2022.08.03 |
php, 반복문 while문 (0) | 2022.08.02 |
댓글