코드 함수화
- 코드를 함수화하여 코드의 복잡도를 낮춘다.
- 코드에 어떠한 기능인지 유추할 수 있는 이름을 부여하여 가독성을 높일 수 있다.
- 코드의 재사용 - 코드의 중복을 최소화하여 함수 호출을 통해 동일한 기능을 쓸 수 있다.
- 경제적(효율성 증가) - 코드의 수정이 함수의 정의부분에서만 이루어짐으로서 기능개선을 할 수 있다.
함수의 형식
사용자 정의 함수
https://www.php.net/manual/en/functions.user-defined.php
기본 함수 정의와 호출
<h2>Basic</h2>
<?php
#함수 정의
function basic(){
print("Lorem ipsum dolor1<br>");
print("Lorem ipsum dolor2<br>");
}
#함수 호출
basic();
basic();
basic();
?>
Parameter 와 Argument 를 사용한 함수
- parameter variable (매개변수) - 호출 시 입력값을 전달받아 함수 내에서 사용하는 변수
- argument (인자) - 구체적인 표현식(입력한 실제값)
<h2>parameter & argument</h2>
<?php
#함수 매개변수를 전달받아 동작
function sum($left, $right){
print($left+$right);
print("<br>");
}
sum(2,4);
sum(4,6);
?>
Return 값
- return value - 함수의 실행 결과값을 호출한 곳으로 돌려보낸다.
이 전 코드는 sum() 함수에 더하기와 출력 기능 2가지를 수행하고 있다. 단지 더한 값만 필요할 수 있다. 더한값을 출력하거나 이메일로 보내거나, 파일로 저장하거나 등의 다른 동작을 원할 수 있다.
따라서, "하나의 함수는 하나의 기능만을 담는다"는 관점을 가지는게 좋다.
sum1()은 더하고 자체적으로 출력하는 기능이 있어서, 더하고 출력용으로 사용할 수 있지만,
sum2()는 단지 더한 결과값만 리턴값으로 받아오므로 다양한 용도로 사용할 수 있게된다.
<h2>return</h2>
<?php
function sum2($left, $right){
return $left+$right;
}
print(sum2(2,4));
file_put_contents('./result.txt', sum2(3,5));
?>
함수를 정의한 function( ){...code...} 는 Statement 이다. 값이되지않지만, 함수를 호출하고 리턴값을 받아온다면 '값'이 되기때문에 "표현식"이다.
함수의 활용
함수의 정의는 함수 호출 전에 위치해야한다.
<?php
function print_title(){
if(isset($_GET['id'])){
echo $_GET['id'];
}else{
echo "Welcome";
}
}
function print_content(){
if(isset($_GET['id'])){
echo file_get_contents('./data/'.$_GET['id']);
}else{
echo "This is Javakong Homepage.";
}
}
function file_list(){
$list = scandir('./data/');
$i=0;
while($i<count($list)){
if($list[$i] != '.'){
if($list[$i] != '..'){
echo "<li><h3><a href=\"index.php?id=$list[$i]\">$list[$i]</a></h3></li>\n";
}
}
$i++;
}
}
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title><?php print_title();?></title>
</head>
<body>
<h1><a href="index.php">Javakong</h1>
<ol>
<?php
file_list();
?>
</ol>
<h2>
<?php
print_title();
?>
</h2>
<?php
print_content();
?>
</body>
</html>
'코딩공부 > WEB2 - PHP' 카테고리의 다른 글
[11] PHP 글 생성 기능 구현 (0) | 2019.09.26 |
---|---|
[10] PHP에서 FROM과 GET, POST (0) | 2019.09.26 |
[8] PHP 제어문 - 조건문, 반복문 (0) | 2019.09.25 |
[7] PHP 함수 - Built in Function (0) | 2019.09.25 |
[6] PHP의 URL 파라미터 (0) | 2019.09.25 |