웹 프로그래밍 및 실습
(Web Programming & Practice)
기초 프로그래밍
문양세
강원대학교 IT 대학 컴퓨터과학전공
Source Code
모든 PHP 프로그램은 <?PHP … ?> 혹은 <? … ?> 안에서 사용해야 함
모든 문장은 ; 으로 끝남
웹서버가 www.kangwon.ac.kr 이고 , 파일 이름이 print_test.php 라 하면 , http://www.kangwon.ac.kr/print_test.php 를 호출
print 함수의 경우 () 를 생략하기도 함
Hello PHP 구성 (1/2)
기초 프로그래밍
<?PHP
print (“Hello PHP”);
print “Hello PHP”;
?>
수행 결과 (hello1.php)
Hello PHP 구성 (2/2)
기초 프로그래밍
Source Code
두 번째 줄에 ; 표기가 빠져 있음
print 라는 함수가 prin 으로 잘못 코딩되어 있음
Parse error 발생
에러 발생 (1/2)
기초 프로그래밍
<?PHP
prin “Hello PHP”
?>
수행 결과 (hello2.php, hello3.php)
에러 발생 (2/2)
기초 프로그래밍
프로그램에 대한 이해를 돕기 위한 글을 적음 comment1.php
프로그램 작성자 , 프로그램 작성 의도 , 프로그램 동작 형태 등을 적음
주석 (Comment) (1/2)
기초 프로그래밍
<?PHP
print “Hello PHP”; // 이 문장은 Hello PHP 를 출력하는 문장입니다 /* 이 문장은 Hello PHP 를
출력하는 문장입니다 . */
?>
C/C++ 와 매우 유사함
한 줄 Comment: // 혹은 # 를 사용
여러 줄 Comment: /* 표기와 */ 표기 사용
Comment 를 잘 활용하여 프로그램의 가치를 높일 수 있음
잘못된 Comment 의 예 (Nesting 이 허용되지 않는 경우 )
comment2.php
주석 (Comment) (2/2)
기초 프로그래밍
올바른 Comment 의 예 (Nesting 이 허용되는 경우 ) comment3.php
<?PHP
/* 처음 주석의 시작입니다 . /* 두번째 주석의 시작입니다 . 두번째 주석의 끝입니다 . */
처음 주석의 끝입니다 . */
?>
<?PHP
/* 처음 주석의 시작입니다 . // 두번째 주석입니다 . // 세번째 주석입니다 . // 네번째 주석입니다 . 처음 주석의 끝입니다 . */
?>
변수 (Variables) (1/5)
기초 프로그래밍
변수
정보 ( 값 ) 를 저장
이름과 형식을 가지고 있음 (e.g., $age)
PHP 에서 변수의 특성
변수는 ‘ $’ 문자로 시작한다 .
변수의 이름은 영문 대문자 (A-Z), 소문자 (a-z), 숫자 (0-9), ‘_’ 으로 이루어진 다 .
‘$’ 다음의 첫 문자로 숫자를 사용할 수 없다 .
PHP 에서는 변수 형을 선언 (declaration) 하지 않고 사용한다 .
PHP
변수의 예$age $cyber21 $Student_Name $a_b_c $_NUMBER
PHP
변수가 아닌 예$21c cyber $Student-id $Tiger@sun
변수 (Variables) (2/5)
기초 프로그래밍
변수의 종류
불리언 (Boolean)
정수형 (integer)
실수형 (floating point numbers, real numbers)
문자열 (string)
배열 (array)
객체 (object)
변수형 강도 (strength)
PHP 는 형 강도가 매우 약하며 , 변수에 할당되는 값에 따라 형이 결정됨
예 : $totalamount = 300 + 500; // integer type
$totalamount = “hello”; // string type
변수형 변환 (casting)
Casting operator 사용 : (int), (float), (double), (string), (array), (object)
예 : $totalqty = 0;
$totalamount = (double)$totalqty;
변수 (Variables) (3/5)
기초 프로그래밍
변수형 검사 및 설정
gettype() 함수는 변수형을 스트링 (“integer”, “double”, …) 으로 반환함
settype() 함수는 변수의 형을 주어진 형으로 바꾸어 줌
예 : $a = 56;
var_type1.php
print gettype($a); // integer settype($a, “double”);print gettype($a); // double
변수형 확인 함수 (true or false 를 리턴함 ) var_type2.php
is_array()
is_double(), is_float(), is_real() // 모두 같은 함수임
is_long(), is_int(), is_integer() // 모두 같은 함수임
is_string()
is_object()
string gettype(mixed var);
bool settype(mixed var, string type);
변수 (Variables) (4/5)
기초 프로그래밍
변수에 값 대입
<?PHP
$sum = 12 + 23; // integer type print $sum;
?>
<?PHP
$sum = 12.3 – 42.72; // real(float) type) print $sum;
?>
변수 (Variables) (5/5)
기초 프로그래밍
정수형 변수의 표현 (int_rep.php)
<?PHP
$value = 99999999999997;
print $value . “<br>”;
$value = $value + 1; // $value = 99999999999998 print $value . “<br>”;
$value = $value + 1; // $value = 99999999999999 print $value . “<br>”;
$value = $value + 1; // $value = 100000000000000 print $value . “<br>”;
$value = $value + 1; // $value = 100000000000001 print $value . “<br>”;
$value = $value + 1; // $value = 100000000000002 print $value . “<br>”;
?>
연산자 및 수식 계산 (1/2)
기초 프로그래밍
연산자의 종류 및 의미
사용법 의 미
oprd1 + oprd2
orpd1 에 ordp2 를 더하기oprd1 – orpd2
orpd1 에서 ordp2 를 빼기oprd1 * orpd2
orpd1 에 ordp2 를 곱하기orpd1 / orpd2
orpd1 에서 ordp2 를 나누기orpd1 % orpd2
orpd1 에서 ordp2 를 나눈 나머지연산자 및 수식 계산 (2/2)
기초 프로그래밍
사칙 연산자와 나머지 연산자의 사용 예 oprd.php
<?PHP
$result = 9 + 5;
print “9 + 5 = $result<br>”;
$result = 9 – 5;
print “9 – 5 = $result<br>”;
$result = 9 * 5;
print “9 * 5 = $result<br>”;
$result = 9 / 5;
print “9 / 5 = $result<br>”;
$result = 9 % 5;
print “9 % 5 = $result<br>”;
?>
기타 연산자 (1/2)
기초 프로그래밍
증가 연산자 , 감소 연산자
<?PHP
$temp++; // $temp = $temp + 1;
--$i; // $i = $i – 1;
$k++; // $k = $k + 1;
?>
+= -= *= /= %=
(e.g., $temp += 3; $temp = $temp + 3;)
대입 연산자
기타 연산자 (2/2)
기초 프로그래밍
증가 연산자의 사용 예 (inc_dec.php)
<?PHP
$temp = 1;
if($temp++ == 1) print "temp in the 1st if() is 1";
else print "temp in the 1st if() is 2";
$temp = 1;
if(++$temp == 1) print ", and temp in 2nd if() is 1.";
else print ", and temp in the 2nd if() is 2.";
?>
스트링 연산자
기초 프로그래밍
Concatenation 을 수행하는 “ .” 연산자 사용 두 문자열을 연결하는 연산자임 (concat.php)
<?
$city = “in Chunchon”;
$name1 = “Kangwon ”;
$name2 = “National University “;
print $name1.$name2.$city;
?>
수학적 함수 (1/2)
기초 프로그래밍
삼각함수 (sin, cos, …) 는 기본적으로 Radian 사용 (2 = 360)
로그함수 log() 는 기본적으로 자연 로그 ( 밑이 e) 이며 , 대수 로그 ( 밑 이 10) 는 log10() 을 사용한다 .
삼각함수의 사용 예 (sin_cos1.php)
<?PHP
$result = sin(M_PI / 6);
print “sin(30) = $result<br>”;
$result = cos(M_PI / 6);
print “cos(30) = $result<br>”;
$result = tan(M_PI / 6);
print “tan(30) = $result<br>”;
$result = asin(0.5);
print “asin(0.5) = $result<br>”;
$result = acos(0.866025);
print “acos(0.866025) = $result<br>”;
$result = atan(0.57735);
print “atan (0.57735) = $result<br>”;
?>
수학적 함수 (2/2)
기초 프로그래밍
Degree 값 (360 도 기준 값 ) 사용 deg2rad() 함수 활용 sin_cos2.php
log(), log10(), sqrt() 사용 예 sin_cos2.php
<?PHP
$degree = 30;
$radian = deg2rad($degree);
$result = sin($radian);
print “sin(30) = $result”;
?>
<?PHP
$result = log (10);
print “log(10) = $result<br>”;
$result = log10 (10);
print “log10(10) = $result<br>”;
$result = sqrt (49);
print “sqrt(49) = $result”;
Bitwise 연산자
기초 프로그래밍
사용법 이 름 의 미
orpd1 & orpd2
AND orpd1 과 orpd2 의 비트 모두 1 이면 연산의 결과 는 1 이다 .orpd1 | orpd2
OR orpd1 또는 orpd2 의 비트가 1 이면 연산의 결과 는 1 이다 .orpd1 ^ orpd2
XOR 한 Operand 의 비트는 1 이고 나머지 Operand 의 비트가 0 이면 연산의 결과는 1 이다 .~orpd1
NOT orpd1 의 비트가 0 이면 연산의 결과는 1 이고 , oprd1 의 비트가 1 이면 연산의 결과는 0 이다 .orpd1 << orpd2
Shift Left orpd1 을 왼쪽으로 orpd2 번 Shift 한다 .orpd1 >> orpd2
Shift Right orpd1 을 오른쪽으로 orpd2 번 Shift 한다 .사용 예 bitwise.php
연산자 우선순위
기초 프로그래밍
결합성 연산자
left ,
left or
left xor
left and
left = += -= *= /= .= %= != ~= <<= >>=
left ?:
left ||
left &&
left |
left ^
left &
non-associative == !=
non-associative < <= > >=
left << >>
left + - .
left * / %
if-else 구문 (1/2)
기초 프로그래밍
주어진 조건에 따라서 서로 다른 문장을 수행 문법
if(condition) statement;
if(condition) {
statement1;
statement2;
}
if(condition) statement;
else
statement;
if(condition1) statement;
elseif(condition2) statement;
elseif(condition3) statement;
elseif(condition4) statement;
else
statement;
if-else 구문 (2/2)
기초 프로그래밍
if-else 구문의 예 (ifelse.php)
<?PHP
$temp1 = 1;
$temp2 = 2;
if($temp1 == 1 && $temp2 == 1)
print "condition of if() is true.";
elseif($temp1 == 1 && $temp2 == 2) {
print "condition of elseif() is true.<br>";
print "temp 1 is 1 and temp2 is 2.";
} else
print "condition of else is true.";
?>
비교 연산자 (1/2)
기초 프로그래밍
연산자 의 미
== 같다 (equal). [ 형식은 달라도 ok]
!= 같지 않다 (not equal).
< 작다 (less than).
> 크다 (greater than).
<= 작거나 같다 (less than or equal to).
>= 크거나 같다 (greater than or equal to).
===
동일하다 (identical). 값이 같고 형식 (type) 도 같다 .비교 연산자 (2/2)
기초 프로그래밍
<?PHP
$a = 123;
$b = 456;
if ($a == $b)
print “ 두 값이 같습니다 .<br>”;
if ($a != $b)
print “ 두 값이 같지 않습니다 .<br>”;
if ($a < $b)
print “$a 값이 $b 값보다 작습니다 .<br>”;
if ($a > $b)
print “$a 값이 $b 값보다 큽니다 .<br>”;
if ($a <= $b)
print “$a 값이 $b 값보다 작거나 같습니다 .<br>”;
if ($a >= $b)
print “$a 값이 $b 값보다 크거나 같습니다 .<br>”;
if ($a === $b)
print “$a 값이 $b 값과 동일합니다 .<br>”;
?>
비교 연산자 사용 예 (comp_op.php)
삼항 연산자 (? :)
기초 프로그래밍
(condition) ? statement_true : statement_false; (cond_st.php)
<?PHP
$num = 5;
(($num % 2) == 1) ? print “ 홀수” : print “ 짝수” ;
print “<br>”;
$num = 8;
(($num % 2) == 1) ? print “ 홀수” : print “ 짝수” ;
?>
논리 연산자
기초 프로그래밍
사용법 이름 의 미
!orpd not
Operand 의 값이 FALSE 이면 연산 결과가 TRUE, Operand 의 값이 TRUE 이면 연산 결과 가 FALSE
orpd1 && orpd2 and
두 Operand 의 값이 모두 TRUE 일 때만 연산 결과가 TRUE, 그 외에는 연산 결과가 FALSEorpd1 || orpd2 or
두 Operand 의 값이 모두 FALSE 일 때만 연산결과가 FALSE, 그 외에는 연산 결과가 TRUE
orpd1 xor orpd2 xor
하나의 Operand 는 TRUE 나머지 Operand 는 FALSE 일 때 연산 결과가 TRUE, 그 외에는 연 산 결과가 FALSE
사용 예 logicop.php
while 구문 (1/2)
기초 프로그래밍
문법
while 구문의 사용 예 (while.php)
while (expression) statement
<?PHP $i = 1;
$sum = 0;
while ($i < 101) {
$sum = $sum + $i;
$i = $i + 1;
}
print “The sum from 1 to 100 is $sum”;
?>
while 구문 (2/2)
기초 프로그래밍
무한 루프의 예
<?PHP $i = 0;
$value = 1;
while (TRUE) {
$value = $value * 3;
$i = $i + 1;
if ($value > 10000) break;
}
print $i;
?>
do-while 구문
기초 프로그래밍
문법
do-while 구문의 사용 예 (do-while.php)
do
statement
while (expression);
<?PHP $i = 1;
do {
$j = $i * 5;
$i = $i + 1;
print $j. “<br>”;
} while ($j < 100);
?>
함수 정의 (1/3)
기초 프로그래밍
문법
add() 함수의 정의 func_add.php
function func_name($var1, $var2, ...) {
statements;
}
<?PHP
function add($x, $y) {
$sum = $x + $y;
return $sum;
}
$result = add (3, 5);
print $result;
함수 정의 (2/3)
기초 프로그래밍
Default Values (func_def.php)
<?PHP
function my_log ($arg, $base = 2) {
$result = log ($arg) / log ($base);
return $result;
}
print “log2(10) = ” . my_log(10, 2) . “<br>”;
print “log10(100) = ” . my_log(100, 10) . “<br>”;
print “log2(8) = ” . my_log(8, 2) . “<br>”;
print “<br>”;
print “log2(8) = ” . my_log(8) . “<br>”;
?>
<?PHP
function my_print () {
$args = func_get_args ();
foreach ($args as $arg)
print “ 파라미터 : $arg<br>”;
}
my_print (“Apple”, “Orange”, “Pear”, “Banana”, “Cherry”);
?>
함수 정의 (3/3)
기초 프로그래밍
func_get_args() 함수 활용 (func_arg.php)
Homework #8 ( 실습 #7)
기초 프로그래밍