반응형
PHP 사용자 정의 함수
| 1. 함수의 정의 사용자 정의 함수: PHP에서 기본으로 제공하는 기능 외에, 사용자가 직접 이름을 붙이고 기능을 설계하여 만드는 함수 특징: 한번 만들어 두면 필요할때마다 이름만 불러서 반복해서 사용 가능 2. 함수의 구조와 예시 function: 컴퓨터에 이제부터 새로운 기능을 하나 만들겠다라고 선언하는 명령어 =============================== function sayHello($name) { $message = "안녕하세요, " . $name . "님!"; return $message; } =============================== function sayHello($name) - 인사라는 이름의 함수를 만든다 { $message = "안녕하세요, " . $name . "님!"; - 실행문: 전달받은 이름을 넣어 문장을 만든다 return $message; - 만들어진 문장을 함수 밖으로 보낸다 } echo sayHello("은쯔"); - 함수 호출: 이름을 넣어 실행하고 결과를 출력 결과 출력 =============================== 안녕하세요, 은쯔님! =============================== <?php // [2번] 호출을 받고 여기로 점프! ($name에 "은별"이 저장됨) function sayHello($name) { // [3번] $name에 들어있는 "은별"을 꺼내서 문장을 만들고 $message에 넣음 $message = "안녕하세요, " . $name . "님!"; // [4번] 완성된 $message 값을 들고 다시 호출했던 곳(8번 줄)으로 돌아감 return $message; } // [1번] 여기서 시작! "은별"이라는 값을 들고 sayHello 함수를 부름 // [5번] 함수가 가져온 결과물을 echo가 받아서 화면에 보여줌 echo sayHello("은별"); ?> |

pri0.php 실습 코드 해설
| 소수와 합성수를 구별해보는 프로그램 <?php // 사용자가 '확인' 버튼을 눌러서 숫자를 컴퓨터에게 보냈을 때만 아래 내용이 실행됨 if ($_SERVER["REQUEST_METHOD"] == "POST") { // [1번] 사용자가 칸에 적은 숫자를 가져와서 $n이라는 이름의 저장 공간에 넣음 $n = $_POST['num']; // [2번] 숫자가 1보다 작거나 같은지 확인함 (0, 1 등) if ($n <= 1) { // [3번] 0이나 1은 소수나 합성수 규칙에 해당하지 않으므로 그대로 출력하고 끝냄 echo "<p>{$n}은(는) 소수도 아니고 합성수도 아닙니다.</p>"; } else { // [4번] 일단 이 숫자가 소수라고 가정하고 '참(true)' 상태를 저장해둠. $isPrime = true; // [5번] 숫자를 2부터 시작해서 (해당 숫자 - 1)까지 1씩 늘려가며 계속 나누어 봄 // 예: 7을 입력했다면 2, 3, 4, 5, 6으로 각각 나누기를 시도함 for ($i = 2; $i < $n; $i++) { // [6번] 만약 나누었을 때 나머지가 0이라면? (딱 나누어떨어진다면) if ($n % $i == 0) { // [7번] 자기 자신 말고 다른 숫자로 나누어졌으니 소수가 아니다. '거짓(false)'으로 바뀐다 $isPrime = false; // [8번] 이미 소수가 아님을 알았으니 더 이상 다른 숫자로 나누어 볼 필요가 없어 멈춘다 break; } } // [9번] 위 반복 과정이 끝난 후, 여전히 $isPrime이 '참'인지 '거짓'인지 확인함 if ($isPrime) { // [10번] 끝까지 나누어떨어지는 숫자가 없었다면 소수라고 출력함 echo "<p>{$n}은(는) 소수입니다.</p>"; } else { // [11번] 중간에 한 번이라도 나누어떨어졌다면 합성수라고 출력함 } } } ?> |

fun01.php 실습 코드 해설
| 사용자로부터 숫자(n)를 입력받아, 1부터 그 숫자까지의 모든 정수를 더한 합계(sum)를 구하는 프로그램을 작성하는 실습 <?php // 1. 앞 페이지(HTML)에서 입력한 'limit' 값을 가져와 $limit 변수에 저장한다 $limit = $_GET['limit']; // 2. 1부터 특정 숫자까지 더하는 규칙(함수)을 정의한다. $n은 전달받을 숫자가 들어갈 자리이다 function get_sum($n) { // 3. 합계를 누적할 변수 $sum을 만들고 0으로 초기화한다 $sum = 0; // 4. 숫자 $i를 1부터 시작하여 $n이 될 때까지 1씩 증가시키며 반복한다 *1부터 그 숫자까지의 모든 정수이므로 $i=1부터 시작함 for ($i = 1; $i <= $n; $i++) { - * $i <= $n;인 이유는 만약 1부터 10까지의 숫자를 더하는데 $i < $n; 이거라면 $i <10 이라면 $i가 9일 때는 참이라서 9를 더한다. 그 다음 $i가 10이 되면 10 < 10 이되어 거짓(false)가 된다. 10은 더 하지 못하고 9까지만 더한 채 반복분이 끝나게 된다 // 5. 현재 합계($sum)에 반복 중인 숫자($i)를 더하여 다시 $sum에 저장한다 $sum += $i; } // 6. 모든 반복이 끝나면 최종 합계가 담긴 $sum을 함수 밖으로 돌려준다 return $sum; } // 7. 입력받은 $limit이 계산 가능한 '숫자' 형태인지 확인한다 if (is_numeric($limit)) { // 8. 함수를 실행하여 얻은 결과값을 $result 변수에 담는다 $result = get_sum($limit); // 9. 결과 문장을 출력한다. {}를 사용하면 변수 안의 숫자가 문장 속에 바로 들어간다 echo("1에서 {$limit}까지의 합은 {$result}입니다."); } else { // 10. 숫자가 아닌 값이 들어왔을 때 출력할 안내 문구이다 echo "숫자를 입력해주세요."; } echo "<hr>"; // 11. 현재 작성된 이 파일의 전체 코드를 화면에 그대로 보여준다 show_source(__FILE__); ?> |
참고사항
| [알고리즘] 소수 판별의 원리 1. 핵심 개념 소수: 1과 자기 자신만으로 나누어떨어지는 수 (예: 7) 합성수: 1과 자기 자신 외의 수로도 나누어떨어지는 수 (예: 25) 2. 판별 알고리즘 (Trial Division) 2부터 1씩 증가시키며 N을 나누었을 때, 처음으로 나누어떨어지는 수가 자기 자신이면 소수이다 3. 예시 7 (소수): 2, 3, 4, 5, 6으로 나누었을 때 나머지가 생기다가, 최종적으로 7에서만 나누어떨어짐 → 소수 25 (합성수): 2, 3, 4로 안 나누어지다가, 자기 자신인 25에 도달하기 전인 5에서 나누어떨어짐 → 합성수 4. 한 줄 요약 2부터 순차적으로 나누어 보며, 나누어떨어진 값이 자기 자신(N)과 일치하는지 확인하는 것이 소수 판별의 기본 알고리즘 |
'Infra & Security Eng > Programming' 카테고리의 다른 글
| [PHP] oci_fetch_all의 2차원 배열 구조 해석 하기 (0) | 2026.03.24 |
|---|---|
| [PHP] - 배열 정의, 1,2차원 배열의 종류와 특징, php 코드 실습과 해설 (0) | 2026.03.18 |
| [PHP] - HTML 폼 데이터 전송하기: 라이도 버튼 & 체크버스 연동 (0) | 2026.02.13 |
| 반목분(while문과 for 문) 개념, 차이점, 예제 (0) | 2026.02.06 |
| 프로그래밍 언어 기초 (연산자, 변수, 배열) (0) | 2026.01.09 |