mi-jung choi department of computer science kangwon national university, korea
Embed Size (px)
DESCRIPTION
기초 프로그래밍. Mi-Jung Choi Department of Computer Science Kangwon National University, Korea. Hello PHP 구성 (1/2). 기초 프로그래밍. Source Code 모든 PHP 프로그램은 혹은 안에서 사용해야 함 모든 문장은 ; 으로 끝남 - PowerPoint PPT PresentationTRANSCRIPT

Mi-Jung ChoiMi-Jung Choi
Department of Computer ScienceDepartment of Computer Science
Kangwon National University, KoreaKangwon National University, Korea
기초 프로그래밍

Web ProgrammingPage 2
Source Code
• 모든 PHP 프로그램은 <?PHP … ?> 혹은 <? … ?> 안에서 사용해야 함
• 모든 문장은 ; 으로 끝남
• 웹서버가 www.kangwon.ac.kr 이고 , 파일 이름이 print_test.php 라 하면 ,http://www.kangwon.ac.kr/print_test.php 를 호출
• print 함수의 경우 () 를 생략하기도 함
Hello PHP Hello PHP 구성 구성 (1/2)(1/2)기초 프로그래밍
<?PHP
print (“Hello PHP”);
print “Hello PHP”;
?>

Web ProgrammingPage 3
수행 결과 (hello1.php)
Hello PHP Hello PHP 구성 구성 (2/2)(2/2)기초 프로그래밍

Web ProgrammingPage 4
Source Code
• 두 번째 줄에 ; 표기가 빠져 있음
• print 라는 함수가 prin 으로 잘못 코딩되어 있음
Parse error 발생
에러 발생 에러 발생 (1/2)(1/2)기초 프로그래밍
<?PHP
prin “Hello PHP”
?>

Web ProgrammingPage 5
수행 결과 (hello2.php, hello3.php)
에러 발생 에러 발생 (2/2)(2/2)기초 프로그래밍

Web ProgrammingPage 6
프로그램에 대한 이해를 돕기 위한 글을 적음 comment1.php
프로그램 작성자 , 프로그램 작성 의도 , 프로그램 동작 형태 등을 적음
주석주석 (Comment) (1/2)(Comment) (1/2)기초 프로그래밍
<?PHP
print “Hello PHP”; // 이 문장은 Hello PHP 를 출력하는 문장입니다
/* 이 문장은 Hello PHP 를
출력하는 문장입니다 . */
?>
C/C++ 와 매우 유사함
• 한 줄 Comment: // 혹은 # 를 사용
• 여러 줄 Comment: /* 표기와 */ 표기 사용
Comment 를 잘 활용하여 프로그램의 가치를 높일 수 있음

Web ProgrammingPage 7
잘못된 Comment 의 예 (Nesting 이 허용되지 않는 경우 )
comment2.php
주석주석 (Comment) (2/2)(Comment) (2/2)기초 프로그래밍
올바른 Comment 의 예 (Nesting 이 허용되는 경우 ) comment3.php
<?PHP
/* 처음 주석의 시작입니다 .
/* 두번째 주석의 시작입니다 .
두번째 주석의 끝입니다 . */
처음 주석의 끝입니다 . */
?>
<?PHP
/* 처음 주석의 시작입니다 .
// 두번째 주석입니다 .
// 세번째 주석입니다 .
// 네번째 주석입니다 .
처음 주석의 끝입니다 . */
?>

Web ProgrammingPage 8
변수변수 (Variables) (1/5)(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 [email protected]

Web ProgrammingPage 9
변수변수 (Variables) (2/5)(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;

Web ProgrammingPage 10
변수변수 (Variables) (3/5)(Variables) (3/5)기초 프로그래밍
변수형 검사 및 설정
• gettype() 함수는 변수형을 스트링 (“integer”, “double”, …) 으로 반환함
• settype() 함수는 변수의 형을 주어진 형으로 바꾸어 줌
• 예 : $a = 56; var_type1.phpprint gettype($a); // integersettype($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);

Web ProgrammingPage 11
변수변수 (Variables) (4/5)(Variables) (4/5)기초 프로그래밍
변수에 값 대입
<?PHP
$sum = 12 + 23; // integer type
print $sum;
?>
<?PHP
$sum = 12.3 – 42.72; // real(float) type)
print $sum;
?>

Web ProgrammingPage 12
변수변수 (Variables) (5/5)(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>”;
?>

Web ProgrammingPage 13
연산자 및 수식 계산 연산자 및 수식 계산 (1/2)(1/2)기초 프로그래밍
연산자의 종류 및 의미
사용법 의 미
oprd1 + oprd2 orpd1 에 ordp2 를 더하기
oprd1 – orpd2 orpd1 에서 ordp2 를 빼기
oprd1 * orpd2 orpd1 에 ordp2 를 곱하기
orpd1 / orpd2 orpd1 에서 ordp2 를 나누기
orpd1 % orpd2 orpd1 에서 ordp2 를 나눈 나머지

Web ProgrammingPage 14
연산자 및 수식 계산 연산자 및 수식 계산 (2/2)(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>”;
?>

Web ProgrammingPage 15
기타 연산자 기타 연산자 (1/2)(1/2)기초 프로그래밍
증가 연산자 , 감소 연산자
<?PHP
$temp++; // $temp = $temp + 1;
--$i; // $i = $i – 1;
$k++; // $k = $k + 1;
?>
+= -= *= /= %=
(e.g., $temp += 3; $temp = $temp + 3;)
대입 연산자

Web ProgrammingPage 16
기타 연산자 기타 연산자 (2/2)(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.";
?>

Web ProgrammingPage 17
스트링 연산자스트링 연산자기초 프로그래밍
Concatenation 을 수행하는 “ .” 연산자 사용
두 문자열을 연결하는 연산자임 (concat.php)
<?
$city = “in Chunchon”;
$name1 = “Kangwon ”;
$name2 = “National University “;
print $name1.$name2.$city;
?>

Web ProgrammingPage 18
수학적 함수 수학적 함수 (1/2)(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>”;?>

Web ProgrammingPage 19
수학적 함수 수학적 함수 (2/2)(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”;
?>

Web ProgrammingPage 20
Bitwise 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 >> orpd2Shift Right
orpd1 을 오른쪽으로 orpd2 번 Shift 한다 .
사용 예 bitwise.php

Web ProgrammingPage 21
연산자 우선순위연산자 우선순위기초 프로그래밍
결합성 연산자left ,
left or
left xor
left and
left = += -= *= /= .= %= != ~= <<= >>=
left ?:
left ||
left &&
left |
left ^
left &
non-associative == !=
non-associative < <= > >=
left << >>
left + - .
left * / %
right ! ~ ++ -- (int) (double) (string) (array) (object) @
right [
non-associative new

Web ProgrammingPage 22
if-else if-else 구문 구문 (1/2)(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;

Web ProgrammingPage 23
if-else if-else 구문 구문 (2/2)(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.";
?>

Web ProgrammingPage 24
비교 연산자 비교 연산자 (1/2)(1/2)기초 프로그래밍
연산자 의 미
== 같다 (equal).
!= 같지 않다 (not equal).
< 작다 (less than).
> 크다 (greater than).
<= 작거나 같다 (less than or equal to).
>= 크거나 같다 (greater than or equal to).
===동일하다 (identical). 두 Operand 가 서로 같고 형식 (type)이 같다 .

Web ProgrammingPage 25
비교 연산자 비교 연산자 (2/2)(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)

Web ProgrammingPage 26
삼항 연산자 삼항 연산자 (? :)(? :)기초 프로그래밍
(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 “ 짝수” ;
?>

Web ProgrammingPage 27
논리 연산자논리 연산자기초 프로그래밍
사용법 이름 의 미
!orpd notOperand 의 값이 FALSE 이면 연산 결과가 TRUE, Operand 의 값이 TRUE 이면 연산 결과가 FALSE
orpd1 && orpd2 and두 Operand 의 값이 모두 TRUE 일 때만 연산 결과가 TRUE, 그 외에는 연산 결과가 FALSE
orpd1 || orpd2 or두 Operand 의 값이 모두 FALSE 일 때만 연산 결과가 FALSE, 그 외에는 연산 결과가 TRUE
orpd1 xor orpd2 xor하나의 Operand 는 TRUE 나머지 Operand는 FALSE 일 때 연산 결과가 TRUE, 그 외에는 연산 결과가 FALSE사용 예 logicop.php

Web ProgrammingPage 28
while while 구문 구문 (1/2)(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”;?>

Web ProgrammingPage 29
while while 구문 구문 (2/2)(2/2)기초 프로그래밍
무한 루프의 예
<?PHP
$i = 0;
$value = 1;
while (TRUE)
{
$value = $value * 3;
$i = $i + 1;
if ($value > 10000)
break;
}
print $i;
?>

Web ProgrammingPage 30
do-while 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);
?>

Web ProgrammingPage 31
함수 정의 함수 정의 (1/3)(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;
?>

Web ProgrammingPage 32
함수 정의 함수 정의 (2/3)(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>”;
?>

Web ProgrammingPage 33
<?PHP
function my_print ()
{
$args = func_get_args ();
foreach ($args as $arg)
print “ 파라미터 : $arg<br>”;
}
my_print (“Apple”, “Orange”, “Pear”, “Banana”, “Cherry”);
?>
함수 정의 함수 정의 (3/3)(3/3)기초 프로그래밍
func_get_args() 함수 활용 (func_arg.php)