1 / 61

Mi-Jung Choi Department of Computer Science Kangwon National University, Korea

프로그래밍 본격 시작. Mi-Jung Choi Department of Computer Science Kangwon National University, Korea. 배열 (Array). 프로그래밍 본격 시작. 같은 데이터 형식의 저장공간이 연속적으로 배치되어 있어 , 인덱스를 이용하여 상대위치를 읽거나 쓸 수 있는 자료구조 (array_dow.php). $dow = array (“Sun”, “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”);.

duman
Download Presentation

Mi-Jung Choi Department of Computer Science Kangwon National University, Korea

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 프로그래밍 본격 시작 Mi-Jung Choi Department of Computer Science Kangwon National University, Korea

  2. 배열 (Array) 프로그래밍 본격 시작 같은 데이터 형식의 저장공간이 연속적으로 배치되어 있어, 인덱스를 이용하여 상대위치를 읽거나 쓸 수 있는 자료구조 (array_dow.php) $dow = array (“Sun”, “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”); $coins = array (1, 5, 10, 50, 100, 500); <?PHP $arr1 = array (“A”, “B”, “C”, “D”, “E”, “F”, “G”); $arr2 = array (“A”, “B”, “D”, “E”, “F”, “G”, “H”); $results = array_diff ($arr1, $arr2); foreach ($results as$value) { { print “$value<br>”; } ?>

  3. array_diff(), foreach() 프로그래밍 본격 시작 • 함수 array_diff 문법 • array1에는 있으나 나머지 array에는 없는 값을 반환 • 두 개 이상 array의 원소 값을 비교 arrayarray_diff(array array1, array array2 [,array …]) • 함수 foreach 문법 • Array_expression에 의해 순환, 현재 element 값이 $value에 할당 • 매 순환마다 다음 element로 전진 foreach(array_expression as$value)statement

  4. 2차원 배열 (2D Array) (1/2) 프로그래밍 본격 시작 중첩된 구조로 표현(array 구조 내부에 array를 정의) 2차원 배열 예 $twod_array = array ( array (1, 2, 3), array (4, 5, 6), array (7, 8, 9) ); 2차원 배열에서 원소를 지정하는 방법 ($var[i][j]) [index는 0부터 시작] $temp = $twod_array[2][1]; • N차원 배열인 경우 • 반복적으로 중첩하여 표현 • 원소 지정 방법: $var[i1][i2]…[iN]

  5. 2차원 배열 (2D Array) (2/2) 프로그래밍 본격 시작 2차원 배열의 예제 (array-2d.php) <? $twod_array = array ( array (1, 2, 3), array (4, 5, 6), array (7, 8, 9) ); $dim = 1; foreach ($twod_array as $oned_array) { print "dimension(" . $dim++ . ") "; foreach ($oned_array as $element) { print $element . " "; } print "<br>"; } for($i=0;$i < 3;$i++) { print "dimension(" . ($i+1) . ") "; for($j=0;$j < 3;$j++) { print $twod_array[$i][$j] . " "; } print "<br>"; } ?>

  6. 배열의 정렬(Sorting) (1/3) 프로그래밍 본격 시작 정렬의 예 (sort1.php) <? $arrays = array (“Kim”, “Lee”, “Park”, “Cho”, “Kang”, “Shim”, “Choi”, “Chang”, “Bae”, “Yang”); sort ($arrays); foreach ($arrays as$ar) { print “$ar<br>”; } ?>

  7. 배열의 정렬(Sorting) (2/3) 프로그래밍 본격 시작 • 정렬 함수 sort() • array 배열에 있는 원소들이 낮은 것에서 높은 순서로 배치 • 배열에 있는 내용을 알파벳 순으로 정렬하여 원래의 배열에 저장 voidsort(array array) sample1.php sample11.php sample21.php sample2.php sample12.php sample22.php sample3.php sample13.php sample23.php sort 적용 후 sample1.php sample11.php sample12.php sample13.php sample2.php sample21.php sample22.php sample23.php sample3.php

  8. 배열의 정렬(Sorting) (3/3) 프로그래밍 본격 시작 • 자연(natural) 정렬 함수 natsort() (sort2.c) • 문자(알파벳, 한글 등)와 숫자가 섞여 있는 문자열을 정렬할 때 사용 • 자연 순서(natural ordering) voidnatsort(array array) sample1.php sample11.php sample21.php sample2.php sample12.php sample22.php sample3.php sample13.php sample23.php natsort 적용 후 sample1.php sample2.php sample3.php sample11.php sample12.php sample13.php sample21.php sample22.php sample23.php

  9. 연상/연관 배열(Associative Array) (1/7) 프로그래밍 본격 시작 숫자를 사용하지 않고 문자(스트링)를 키(key)로 사용하는 배열 <?PHP $freshman = array ( “Kim” => “Computer”, “Lee” => “Math”, “Park” => “Physics”, “Choi” => “Music”, “Han” => array (“Electronics”, “Statistics”) ); ?> 키(key) 배열 원소

  10. 연상/연관 배열(Associative Array) (2/7) 프로그래밍 본격 시작 배열의 항목을 가져올 때 $result = $freshman[Kim] // or $result = $freshman[“Kim”]; 배열에 항목을 추가할 때 $freshman[Ko] = “History”; 배열에서 항목을 삭제할 때 unset($array[key_value]);혹은 unset($array[$index]);

  11. 연상/연관 배열(Associative Array) (3/7) 프로그래밍 본격 시작 삭제(unset() 함수)의 예 (unset.php) <? $fruit = array ( "Apple" => "Red", "Pear" => array ("Brown", "Yellow"), "Peach" => "Pink", "Tomato" => array ("Red", "Green"), "Banana" => "Yellow" ); print "**** BEFORE ****<br>"; var_dump($fruit); print "<br><br>"; unset($fruit[Pear], $fruit[Banana]); print "**** AFTER ****<br>"; var_dump($fruit); ?> var_dump()는 배열 내 모든 항목을 출력하는 함수임

  12. 연상/연관 배열(Associative Array) (4/7) 프로그래밍 본격 시작 foreach 문의 사용 예 $fruit = array ( “Apple” => “Red”, “Pear” => array (“Brown”, “Yellow”), “Peach” => “Pink”, “Tomato” => array (“Red”, “Green”), “Banana” => “Yellow” ); print “**** BEFORE ****<br>”; print_fruit ($fruit); print “<br><br>”; print “**** AFTER ****<br>”; unset ($fruit[Pear], $fruit[Banana]); print_fruit ($fruit); ?>

  13. 연상/연관 배열(Associative Array) (5/7) 프로그래밍 본격 시작 foreach 문의 사용 예 (계속) <?PHP functionprint_fr ($arr_var) { foreach ($arr_varas$arr_item) { if (is_array ($arr_item)) print_fr ($arr_item); else print “Color = “ . $arr_item . “<br>”; } } functionprint_fruit ($arr_var) { foreach ($arr_varas$arr_item => $arr_list) { print “FRUIT: “ . $arr_item . “<br>”; if (is_array ($arr_list)) print_fr ($arr_list); else print “Color = “ . $arr_list . “<br>”; print “====================<br>”; } }

  14. 연상/연관 배열(Associative Array) (6/7) 프로그래밍 본격 시작 foreach 문의 사용 예 (계속) – 결과 화면 (array_assoc.php)

  15. 연상/연관 배열(Associative Array) (7/7) 프로그래밍 본격 시작 • 연상 배열의 정렬 • asort() 함수의 경우, 원소가 배열이 아닌 것을 먼저 정렬하고, 배열인 것은 다음 순으로 정렬함 • 연상 배열의 정렬의 예: pp. 68-70 array_assoc_sort.php

  16. 기타 배열 관련 함수들 프로그래밍 본격 시작 배열 재배치: shuffle(), array_reverse() 배열 탐색: each(), current(), reset(), end(), next(), pos(), prev() 배열 각 원소에 함수 적용: array_walk() 배열의 수 세기: count(), sizeof(), array_count_values() 배열을 스칼라 변수로 변환: extract() 각 함수의 사용법에 대해서 각자 읽힐 것

  17. for 문 (1/4) 프로그래밍 본격 시작 • 문법 • expr1 계산 • 매 순환의 시작에 expr2가 계산 • 이때 계산된 expr2 값이 TRUE이면 순환은 계속되며 statement가 수행 • 계산된 expr2 값이 FALSE이면 순환 종료 • 매 순환의 마지막에 expr3가 계산 for(expr1; expr2; expr3) statement for(expr1; expr2; expr3): statement; ...; endfor; for(expr1; expr2; expr3) { statement; ...; }

  18. for 문 (2/4) 프로그래밍 본격 시작 구하기 (for_ex1.php, for_ex2.php) <?PHP $i = 1; $sum = 0; while ($i < 101) { $sum = $sum + $i; $i = $i + 1; } print “1부터 100까지의 합 = $sum”; ?> <?PHP for ($i = 1, $sum = 0;$i < 101;$i++) $sum = $sum + $i; print “1부터 100까지의 합 = $sum”; ?>

  19. for 문 (3/4) 프로그래밍 본격 시작 구구단 예제 (99_ex.php) <html> <body> <center> <table border=“1”> <tr> <td>&nbsp;</td> <?PHP for ($cols = 1; $cols <= 9; $cols++) print “<td>$cols</td>”; ?> </tr> <?PHP for ($rows = 1; $rows <= 9; $rows++) { print “<tr>\n”; print “<td>$rows</td>”; for ($cols = 1; $cols <= 9; $cols++) print “<td>” . $rows * $cols . “</td>”; print “</tr>\n”; } ?> </table> </center> </body> </html>

  20. for 문 (4/4) 프로그래밍 본격 시작 구구단 예제 – 결과 화면

  21. switch 문 프로그래밍 본격 시작 여러 개의 if문이 이어져있는 것과 같은 기능을 수행 하나의 변수에 따라 각각의 다른 코드를 실행하고자 할 때 편리 <?PHP $score = 80; switch ($score) { case 100: print “당신의 성적은 A입니다.”; break; case 80: print “당신의 성적은 B입니다.”; break; case 60: print “당신의 성적은 C입니다.”; break; case 40: print “당신의 성적은 D입니다.”; break; case 0: print “당신의 성적은 F입니다.”; break; default: print “당신의 성적은 … 모르겠네요.”; break; } ?>

  22. 재귀 호출 (Recursive Calls) (1/2) 프로그래밍 본격 시작 • 함수 자신이 자기 자신을 호출 • 큰 문제를 작은 문제로 나누어서 해결할 수 있기 때문에 알고리즘의 구현에 있어 많이 사용되는 구조 (예: merge sort) • Factorial을 구하는 프로그램 예 (factorial.php) • 수학적으로 보면, n! = n x (n-1)! functionfactorial ($n) { if ($n == 1) return (1); return ($n * factorial ($n – 1)); }

  23. 재귀 호출 (Recursive Calls) (2/2) 프로그래밍 본격 시작 • 피보나치 수열 (Fibonacci Sequence) (fibonacci.php) • 수열의 각 항은 바로 앞 두 항의 합으로 정의됨 • 이웃한 두 항에서 전항/후항 값이 황금비(1.618033)에 가까운 값을 가짐 <?PHP functionfibo ($num) { if ($num == 0 || $num == 1) return (1); return (fibo ($num – 1) + fibo ($num – 2)); } print “피보나치수열 출력” . “<br>”; for ($i = 1; $i <= 20; $i++) print (fibo ($i)) . “<br>”; ?>

  24. global 변수 프로그래밍 본격 시작 함수 영역 밖에 있는 변수를 참조하는 경우 (함수 영역 내: local 변수)(global_var.php) <?PHP functioncounts() { global$i; $i = $i + 1; } $i = 0; while ($i < 10) { counts (); print$i . “<br>”; } ?>

  25. static 변수 프로그래밍 본격 시작 이전의 함수 호출 시 가지고 있던 변수의 값 유지 (static_var.php) <?PHP functioninc() { static$i = 1; print $i . “<br>”; $i = $i + 1; } for ($j = 1; $j <= 10; $j++) inc (); ?>

  26. Call By Value (1/2) 프로그래밍 본격 시작 PHP에서 기본적으로 사용하는 방법 파리메터의 (주소가 아닌) 값이 함수의 Argument로 전달됨 C의 예: abc(int a, int b) {…}, abc(x, y); (cbv.php) <?PHP functionswap ($a, $b) { $temp = $a; $a = $b; $b = $temp; } $i = 3; $j = 4; print "before swap = $i, $j <BR>" swap ($i, $j); print "after swap = $i, $j"; ?>

  27. Call By Value (2/2) 프로그래밍 본격 시작 배열을 사용한 CBV 예제 (cbv_arr.php) <?PHP function my_reverse($param_array, $num) { // $temp_array = $param_array; for($i=0;$i < $num;$i++) $temp_array[$num-$i-1] = $param_array[$i]; $param_array = $temp_array; } $num_array = array (10, 20, 30, 40, 50); print "before = "; for($i=0;$i < sizeof($num_array);$i++) print “$num_array[$i] “; my_reverse($num_array, sizeof($num_array)); print “<BR>after = "; for($i=0;$i < sizeof($num_array);$i++) print “$num_array[$i] “; ?>

  28. Call By Reference (1/2) 프로그래밍 본격 시작 파리메터의 (값이 아닌) 저장 장소(주소)가 함수의 Argument로 전달됨 C의 예: abc(int *a, int *b) {…}, abc(&x, &y) (cbr.php) <?PHP functionswap(&$a, &$b) { $temp = $a; $a = $b; $b = $temp; } $i = 3; $j = 4; print “before swap = $i, $j” . “<br>”; swap($i, $j); // same as swap(&$i, &$j); print “after swap = $i, $j” . “<br>”; ?>

  29. Call By Reference (2/2) 프로그래밍 본격 시작 배열을 사용한 CBR 예제 (cbr_arr.php) <?PHP function my_reverse(&$param_array, $num) { // $temp_array = $param_array; for($i=0;$i < $num;$i++) $temp_array[$num-$i-1] = $param_array[$i]; $param_array = $temp_array; } $num_array = array (10, 20, 30, 40, 50); print "before = "; for($i=0;$i < sizeof($num_array);$i++) print “$num_array[$i] “; my_reverse($num_array, sizeof($num_array)); print “<BR>after = "; for($i=0;$i < sizeof($num_array);$i++) print “$num_array[$i] “; ?>

  30. 클래스 (Class) (1/9) 프로그래밍 본격 시작 • 용어 정리 • 데이타: attribute • 함수: method • 객체(object): 데이타 + 함수 • 클래스(class): 동종의 객체를 하나의 그룹으로 묶어 정의한 것 • 객체화(Instantiation): 클래스 정의에 의해 생성된 객체 변수

  31. attribute method 클래스 (Class) (2/9) 프로그래밍 본격 시작 클래스 선언의 예 (class1.php) <?PHP classStudent { var$StudentID; var$StudentName; functionprintStudent ($id, $name) { print “ID: “ . $id . “<br>”; print “Name: “ . $name . “<br>”; } } $object = newStudent; $object->StudentID = 1234; $object->StudentName = “Kim”; $object->printStudent ($object->StudentID, $object->StudentName); ?>

  32. 클래스 (Class) (3/9) 프로그래밍 본격 시작 클래스 내부 Attribute 접근(this) (class2.php) <?PHP classStudent { var$StudentID; var$StudentName; functionprintStudent () { print “ID: “ . $this->StudentID . “<br>”; print “Name: “ . $this->StudentName . “<br>”; } } $object = newStudent; $object->StudentID = 1234; $object->StudentName = “Kim”; $object->printStudent (); ?>

  33. Student $StudentID $StudentName printStudent() 클래스 (Class) (3/9) 프로그래밍 본격 시작 객체화 (Instantiation) 객체화 객체화 object1 object2 $StudentID=1234 $StudentName=Kim printStudent() $StudentID=7890 $StudentName=Lee printStudent()

  34. 클래스 (Class) (4/9) 프로그래밍 본격 시작 • Public vs. Private (class3.php) • 클래스 내의 Attribute는 기본적으로 (외부에서 보이는) Public 타입임 • (외부에서 보이지 않는) Private 타입을 표시하기 위해서는 Attribute 앞에 Underbar(“_”)를 붙임 classApple { var$_price; var$color; var$weight; functionprintApple () { $this->_printPrivate (); } function_printPrivate () { print$this->_price . $this->color . $this->weight . “<br>”; } }

  35. 클래스 (Class) (5/9) 프로그래밍 본격 시작 • 생성자 (Constructor) • 클래스를 생성(new)할 때 실행되는 함수 • 클래스와 동일한 이름을 사용하여 생성자 Method를 선언해야 함 <?PHP classfruit { var$_fruit_name; var$_price; var$_color; functionfruit ($name, $price, $color) { $this->_fruit_name = $name; $this->_price = $price; $this->_color = $color; }

  36. 클래스 (Class) (6/9) 프로그래밍 본격 시작 생성자 (계속) (class4.php) functionprint_fruit () { print “Fruit name: $this->_fruit_name<br>”; print “Fruit price: $this->_price<br>”; print “Fruit color: $this->_color<br>”; print “<br>”; } } $Apple = newfruit (‘Apple’, 1000, ‘red’); $Orange = newfruit (‘Orange’, 2000, ‘orange’); $Banana = newfruit (‘Banana’, 500, ‘yellow’); $Pear = newfruit (‘Pear’, 3000, ‘gray’); $Apple->print_fruit (); $Orange->print_fruit (); $Banana->print_fruit (); $Pear->print_fruit (); ?>

  37. 클래스 (Class) (7/9) 프로그래밍 본격 시작 • 상속 (Inheritance) • 부모 클래스로부터 자식 클래스가 특성(property)을 계승 받는 것 • 부모 클래스에서 선언되었던 Attribute와 Method를 자식 클래스에서 그대로사용 가능 • 예약어 “extends”를 사용하여 자식 클래스가 어느 부모 클래스로부터 상속받는지를 명시

  38. People $Name $Age printPeople () Student Professor Staff $Name $Age $ID printPeople() printStudent() $Name $Age $Office_No printPeople() printProfessor() $Name $Age $Title printPeople() printStaff() 클래스 (Class) (8/9) 프로그래밍 본격 시작 상속되는 클래스 예 상속

  39. 클래스 (Class) (9/9) 프로그래밍 본격 시작 상속이 적용된 프로그램의 예 (class5.php) classPeople { var$Name; var$Age; functionprintPeople () { print “Name: “ . $this->Name . “<br>”; print “Age: “ . $this->Age . “<br>”; } } classProfessorextendsPeople { var$Office_No; functionprintProfessor () { $this->printPeople (); print “Office_No: “ . $this->Office_No . “<br>”; } }

  40. 정규 표현식 (Regular Expression) (1/6) 프로그래밍 본격 시작 • 정규 표현식이란? • 문자열에서 문자열 매칭 (string matching)을 하기 위한 패턴 (pattern) • 여러 가지 특수 문자들을 패턴으로 제공 • 예를 들어 “www.”과 “.co.kr” 사이에 영문 소문자 단어가 하나 이상 있는 인터넷 주소를 찾는 정규 표현식 • ^www\.[a-z]+\.co\.kr$

  41. 정규 표현식 (Regular Expression) (2/6) 프로그래밍 본격 시작 • 정규 표현식의 원칙 • 특수 문자가 아닌 것은 문자 그대로 매치 (예를 들어, 패턴이 영문자 A라면 이 패턴은 타겟 문자열에 있는 A와 매치) • 특수 문자 ^은 문자열 시작에 매치 • 특수 문자 $는 문자열 마지막에 매치 • 특수 문자 .은 어느 문자와도 매치 • 특수 문자 *는 이전 정규표현식이 0번 이상 반복되는 것에 매치 • 특수 문자 +는 이전 정규표현식이 1번 이상 반복되는 것에 매치 • 대괄호로 묶여진 문자의 집합은 그 집합에 속한 어느 문자와도 매치예를 들어 [bc]는 b 또는 c와 매치 • 어떤 문자를 한번이상 매칭하기 원할 때는 { } 사용예를 들면 [a-z]{5}는 5개의 소문자를 포함한 문자열을 매치

  42. 정규 표현식 (Regular Expression) (3/6) 프로그래밍 본격 시작 PHP에서 제공하는 문자 집합

  43. 정규 표현식 (Regular Expression) (4/6) 프로그래밍 본격 시작 • 문자열 매칭 함수 • string에서 정규 표현식으로 표현된 pattern을 찾음 • string 내에 pattern을 찾았으면 TRUE를 리턴하고 그렇지 않으면 FALSE를 리턴 • regs는 선택적으로 존재하는 배열이며, pattern에 괄호가 있을 경우 i번째 괄호의 패턴에 매치된 것은 배열 regs의 i번째 항목에 저장 (예제 reg_ex2.php 참조) • ereg() 함수는 대소문자를 구별하고, eregi() 함수는 대소문자를 구별하지 않음(case insensitive) boolereg(string pattern, string string [,array regs]) booleregi(string pattern, string string [,array regs])

  44. 정규 표현식 (Regular Expression) (5/6) 프로그래밍 본격 시작 정규 표현식 사용 예(1) (reg_ex1.php) <?PHP $urls = array (“www.samsung.co.kr”, “www.daum.net”, “www.donga.co.kr”, “www.chosun.com”, “www.kbs.co.kr”, “virus.donga.co.kr”, “www.LIST.co.kr”, “www.note.abc.co.kr”); print “ereg()를 사용했을 때<br>”; foreach ($urls as$url) if (ereg (“^www\.[a-z]+\.co\.kr$”, $url)) print “$url<br>”; print “eregi()를 사용했을 때<br>”; foreach ($urlsas$url) if (eregi (“^www\.[a-z]+\.co\.kr$”, $url)) print “$url<br>”; ?>

  45. 정규 표현식 (Regular Expression) (6/6) 프로그래밍 본격 시작 정규 표현식 사용 예(2) (reg_ex2.php) <?PHP $date1 = “2001-08-15”; $date2 = “2002-7-17”; if (ereg (“([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})”, $date1, $regs)) { print “$regs[3]/$regs[2]/$regs[1]<br>”; } if (ereg (“([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})”, $date2, $regs)) { print “$regs[3]/$regs[2]/$regs[1]<br>”; } ?>

  46. Form 필드를 사용한 입력 처리 (1/10) 프로그래밍 본격 시작 • 사용자가 입력한 데이타를 전달 받기 위한 도구로서, HTML의 Form 필드를 활용하고, 전달 받은 값을 PHP 프로그램으로 처리 • 사용 단계 • HTML로 사용자의 입력을 받을 Form을 생성 • 입력 받은 Form을 처리할 PHP 파일을 생성 • Form 사용법에 대해서는 강의노트 “04. CGI.pptx” 참조

  47. Form 필드를 사용한 입력 처리 (2/10) 프로그래밍 본격 시작 예제 1: 두 수 및 연산자를 입력 받아 계산하기 HTML 프로그램(lecture10_form1.html) <form method=post action="lecture10_form1.php"> <input type="text" name="val01" size=5> <input type="text" name="operator" size=1> <input type="text" name="val02" size=5> <input type="submit" value="계산하기"> </form>

  48. Form 필드를 사용한 입력 처리 (3/10) 프로그래밍 본격 시작 예제 1: 두 수 및 연산자를 입력 받아 계산하기 (계속) PHP 프로그램 (lecture10_form1.php) <? extract(array_merge($HTTP_GET_VARS, $HTTP_POST_VARS)); switch($operator) { case("+"): $result = $val01 + $val02; print $val01." + ".$val02." = ".$result; break; case("-"): $result = $val01 - $val02; print $val01." - ".$val02." = ".$result; break; case("*"): $result = $val01 * $val02; print $val01." * ".$val02." = ".$result; break; case("/"): $result = $val01 / $val02; print $val01." / ".$val02." = ".$result; break; } ?> GET 및 POST 방식으로 전달된 변수 값을 “변수 = 값”의 형태로 변환  다음 슬라이드 참조

  49. Form 필드를 사용한 입력 처리 (4/10) 프로그래밍 본격 시작 • 예제 1: 두 수 및 연산자를 입력 받아 계산하기 (계속) • 변수 및 함수 설명 • $HTTP_GET_VARS: GET으로 전송된 변수 값을 저장하는 배열배열의 원소를 지칭하려면, $HTTP_GET_VARS[“변수명”] 사용 • $HTTP_POST_VARS: POST로 전송된 변수 값을 저장하는 배열배열의 원소를 지칭하려면, $HTTP_POST_VARS[“변수명”] 사용 • array_merge(array, array, …): 모든 배열을 통합하는 함수 • extract(array): 배열에서 키와 값을 변수와 값으로 추출하는 함수 • In conclusion, HTML에서 전달된 변수를 PHP 프로그램에서 사용하기 위해서는 PHP 문서 맨 앞에 다음을 덧붙여 사용함 extract(array_merge($HTTP_GET_VARS, $HTTP_POST_VARS));

  50. Form 필드를 사용한 입력 처리 (5/10) 프로그래밍 본격 시작 예제 2: 리스트로 구구단 출력하기 HTML 프로그램 (lecture10_form2.html) <form method=post action="lecture10_form2.php"> <select name="val01" size="1"> <option value="2">2단</option> <option value="3">3단</option> <option value="4">4단</option> <option value="5">5단</option> <option value="6">6단</option> <option value="7">7단</option> <option value="8">8단</option> <option value="9">9단</option> </select> <input type="submit" value="결과 보기"> </form>

More Related