데이터베이스/SQL
PHP 기본 문법
haventmetyou
2023. 12. 28. 17:02
PHP 코드의 확정명은 *.php로 사용
- php 기본 틀
<?php
?>
- php 주석
<?php
// 한 줄 주석용
/*
여러 줄
주석용
*/
?>
- 변수와 출력
<?php
$a = 100;
print $a;
$b = "안녕하세요? MariaDB";
echo $b;
?>
// 실행 결과
100안녕하세요?MariaDB
PHP의 변수 이름은 몇 가지 규칙을 따라야 함
- 제일 앞에 $가 붙어야 함
- 문자와 숫자, 언더바(_)를 사용할 수 있지만 숫자로 시작할 수 없음
ex) $abc (O), $abc123 (O), $_abc123 (O), $123 (X), $123abc (X)
- 대소문자를 구별함 ex) $abc와 $ABC는 다른 변수
- 데이터 형식
PHP 데이터 형식은 정수(int), 실수(double), 문자열(string), 불형(boolean), 객체(object), 배열(array) 등이 있음
<?php
$a = 123; echo gettype($a), "<br>";
$a = 123.123; echo gettype($a), "<br>";
$a = "MariaDB"; echo gettype($a), "<br>";
$a = true; echo gettype($a), "<br>";
$a = array( 1, 2, 3); echo gettype($a), "<br>";
?>
- 문자열
문자열은 큰 따옴표 혹은 작은 따옴표를 사용해도 되지만 큰 따옴표로 묶고, 그 내부에 필요할 경우 작은 따옴표로 묶어주는 방식이 적절함
<?php
$str1 = "이것이 MariaDB다<br>"; echo $str1;
$str2 = 'PHP 프로그래밍<br>'; echo $str2;
$str3 = "SELECT * FROM userTBL WHERE userID='JYP' "; echo $str3;
?>
- 조건문과 반복문
- if() 함수
조건식의 결과는 TRUE 또는 FALSE가 오는데 주로 비교 연산자인 ==, <>, <, >, <=, >= 등이 사용됨
<?php
$a=100;
$b=200;
if($a > $b) {
echo "a가 b보다 큽니다.";
} else {
echo "a가 b보다 작습니다.";
}
?>
// 실행 결과
a가 b보다 작습니다.
여러 개의 조건이 필요하다면 if ~ elseif를 사용할 수 있음
<?php
$jumsu=83;
if($jumsu >= 90) {
echo "A학점";
} elseif($jumsu >= 80) {
echo "B학점";
} elseif($jumsu >= 70) {
echo "C학점";
} elseif($jumsu >= 60) {
echo "D학점";
} else {
echo "F학점";
}
?>
// 실행 결과
B학점
- switch() 함수
if~elseif와 비슷하게 switch~case로 여러 개의 조건 처리 가능, default 부분은 생략 가능
형식 :
switch(변수) {
case 값1 :
// 값1이면 이 부분을 처리
break;
case 값2 :
// 값2면 이 부분을 처리
break;
...
default:
// 아무것도 해당 안 되면 이 부분 처리
}
<?php
$jumsu=83;
switch(intval($jumsu / 10)) {
case 10: //100점인 경우도 A학점 처리
case 9:
echo "A학점"; break;
case 8:
echo "B학점"; break;
case 7:
echo "C학점"; break;
case 6:
echo "D학점"; break;
default:
echo "F학점";
}
?>
- for() 함수
형식 :
for(초깃값 ; 조건식 ; 증감식) {
// 반복할 부분
}
<?php
for( $i=1; $i<=10 ; $i=$i+1 ) {
echo $i, " ";
}
?>
// 실행 결과
1 2 3 4 5 6 7 8 9 10
<?php
$hap=0;
for( $i=123; $i<=456 ; $i=$i+2 ) {
$hap = $hap + $i;
}
echo "123부터 456까지 홀수의 합계 : ", $hap;
?>
// 실행 결과
123부터 456까지 홀수의 합계 : 48263
- while() 함수
형식 :
while(조건식) {
// 반복할 부분
}
/* while문의 필수는 아니지만 초깃값과 증감식의 위치 파악 */
형식 :
초깃값;
while(조건식) {
// 반복할 부분
증감식;
}
<?php
$hap=0;
$i = 123;
while( $i<=456 ) {
$hap = $hap + $i;
$i=$i+2;
}
echo "123부터 456까지 홀수의 합계 : ", $hap;
?>
// 실행 결과
123부터 456까지 홀수의 합계 : 48263
- 배열
형식1 :
$배열명 = array(값1, 값2, 값3 ...);
형식2 :
$배열명 = range(시작값, 끝값, 증가값); // 증가값 생략 가능
형식3 :
$배열명[0] = 값1; // 배열명 정의되어 있지 않아도 배열 생성됨
$배열명[1] = 값2;
$배열명[2] = 값3;
...
<?php
$myArray = array(100, 'MariaDB', 123.123);
echo $myArray[0], " ", $myArray[1], " ", $myArray[2], "<br>";
$myArray = range(1,3);
echo $myArray[0], " ", $myArray[1], " ", $myArray[2], "<br>";
$myArray = range(1,10,2);
echo $myArray[0], " ", $myArray[4], "<br>";
$newArray[0] = 'This';
$newArray[1] = 'is';
$newArray[2] = 'MariaDB';
echo $newArray[0], " ", $newArray[1], " ", $newArray[2], "<br>";
?>
<?php
$hap = 0;
$myArray = range(1, 10);
for($i=0; $i<10; $i++) {
$hap = $hap + $myArray[$i];
}
echo "배열의 합계 : ", $hap;
?>
<?php
$myArray = range(1, 10);
echo "임의로 섞은 값 ==> ";
shuffle($myArray);
foreach($myArray as $data)
echo $data, " ";
echo "<br>오름차순 정렬 ==> ";
sort($myArray);
foreach($myArray as $data)
echo $data, " ";
echo "<br>내림차순 정렬 ==> ";
rsort($myArray);
foreach($myArray as $data)
echo $data, " ";
echo "<br>순서를 반대로 ==> ";
$revArray = array_reverse($myArray);
foreach($revArray as $data)
echo $data, " ";
?>
- PHP 내장 함수
<?php
$today = "현재는 ".date("Y-m-j")." 입니다.";
echo $today, "<br>";
$ary = array(100, 50, 200, 7);
echo "최대:", max($ary) ," 최소:", min(-123, 50, 999), "<br>";
echo pi(), " ", round(M_PI), " ",ceil(M_PI), "<br>";
$str = " This is MariaDB "; // 앞뒤 공백 3개씩
$str = trim($str);
echo "#", $str, "#", "<br>";
echo "문자열 길이:", strlen($str), "<br>";
echo str_repeat("-", 30), "<br>";
echo str_replace( "MariaDB", "마리아디비", "This is MariaDB"), "<br>";
$ary = explode(" ", "This is MariaDB");
print_r($ary); echo "<br>"; // 배열 출력
echo implode($ary, " "), "<br>";
$myHTML = "<A href='www.hanbit.co.kr'> 한빛미디어 </A> <br>";
echo $myHTML;
echo htmlspecialchars($myHTML);
?>
- HTML과 PHP 관계
- 데이터 전송 개념
// send.html 파일
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=UTF-8">
</HEAD>
<BODY>
<FORM METHOD="post" ACTION="receive.php">
아이디 : <INPUT TYPE ="text" NAME="userID">
이름 : <INPUT TYPE ="text" NAME="userName">
<BR><BR>
<INPUT TYPE="submit" VALUE="전송">
</FORM>
</BODY>
</HTML>
// receive.php 파일
<?php
$userID = $_POST["userID"];
$userName = $_POST["userName"];
echo "전달 받은 아이디 : ", $userID, "<br>";
echo "전달 받은 이름 : ", $userName, "<br>";
?>
- post get 전달 방식
결과는 동일, 차이점은
post 방식의 결과는 주소창에 localhost/receive.php만 있지만
get 방식의 결과는 주소 뒤에 '?변수=값&변수=값' 방식으로 값이 전달됨
- HTML 문법으로만 구성된 파일의 확장명을 *.php로 저장해 사용해도 상관없음
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=UTF-8">
</HEAD>
<BODY>
<FORM METHOD="post" ACTION="receive.php">
아이디 : <INPUT TYPE ="text" NAME="userID">
이름 : <INPUT TYPE ="text" NAME="userName">
<BR><BR>
<INPUT TYPE="submit" VALUE="전송">
</FORM>
</BODY>
</HTML>
ex) 위와 같은 파일도 확장자를 .html이 아닌 .php로 저장해도 오류 메시지가 뜨지 않고 잘 실행됨