3장. PHP 소개 461-298. 데이타통신특론 김태영교수님20128144 홍창의
HTML & PHP HTML내부에 PHP가 포함된다. 작동순서 : .php (웹서버) php 프로세서 php 프로그램 해석기(PHP parser) (웹브라우저) HTML Php의 시작 <?php ?> <?php echo "Hello world"; ?>
예제 소스 http://lpmj.net/
PHP의 구조 주석 기본문법(세미콜론, 심볼) 변수(문자열, 숫자, 배열, 2차원배열, 변수네이밍) 연산자(산술, 대입, 비교, 논리) 변수 대입(변수의증감, 문자열연결,문자열타입,이스케이프문자) 다중 라인 명령어 변수 입력
PHP의 구조 8. 상수 9. Echo와 print 명령어의 차이 함수 8. 상수 9. Echo와 print 명령어의 차이 함수 변수 범위(지역변수, 전역변수, 고정변수, 슈퍼전역변수, 슈퍼전역변수와 보안)
1. 주석 1) 한 줄 주석 // 주석입니다. 2) 다중 라인 주석 /* ~ */
2. 기본 문법 1) 세미콜론으로 끝난다. 2) 모든 변수 앞에 $심볼을 붙여야 한다. 숫자/ 문자/ 배열이든 상관없다.
3. 변수의 이해 1) 문자열 변수 2) 숫자 변수 $count = 17; 3) 배열 1) 문자열 변수 2) 숫자 변수 $count = 17; 3) 배열 $team=array(‘Hong’, ’Choi’, ’Jeon’, ‘Song’) ; echo $team[2] ;
3. 변수의 이해 4) 2차원 배열 5) 변수 이름 규칙 <배열의 INDEX> 1행,엘리먼트(1,2,3) 4) 2차원 배열 <배열의 INDEX> 1행,엘리먼트(1,2,3) 2행,엘리먼트(1,2,3) 3행,엘리먼트(1,2,3) 5) 변수 이름 규칙 1) 시작은 알파벳이나 밑줄/ 2) 이름에는 알파벳 대소, 숫자, 밑줄만 사용/ 3) 공백불가/ 4) 대소문자 구분
4. 연산자 1) 산술 연산자 수학식을 연산 (p.77 표3-1참조) +:더하기 -:빼기 *:곱하기 /:나누기 %:모듈러스 ++:1증가 --:1감소 2) 대입 연산자 값을 변수에 할당(p.77 표3-2참조) 예) $count += 1; $count = $count + 1; 3) 비교 연산자 두 아이템을 비교하는데 사용 (p.77 표3-3참조) 예) $singleno = 5(대입) vs $singleno == 5(비교) 4) 논리 연산자 두 비교연산자의 결과를 합치기 위하여 or 다른 비교연산자의 입력 사용 (p.77 표3-4참조) 예1) If ($hour > 12 && $hour < 14) dolunch ( ) ; 예2) $ingredient = $ammonia xor $bleach
5. 변수 대입 문법 : 변수 = 값 변수증가와 감소 2) 문자열 연결 예1) if (++$x == 10) echo $x; 변수값을 검사한 후에 증가 예2) if ($y-- == 10) echo $y; if문을 확인한 후 감소 2) 문자열 연결 예1) echo “You have” . $mags . “messages.”; You have 5 messages. 예2) $bulletin .= $newsflash; 두 문자열을 모두 연결
5. 변수 대입 3) 문자열 타입 4) 이스케이프 문자 (잘못 해석될 수 있는 특별한 의미의 문자를 표기하는 방법) 예1) $info=‘Preface variables with a $ like this: $variable’; 모든 문자가 $info 에 대입 예2) echo=“There have been $count presidents or the US”; 문자열 내의 $count 변수의 값이 대입 4) 이스케이프 문자 (잘못 해석될 수 있는 특별한 의미의 문자를 표기하는 방법) 예1) $text = ‘My sister’s car is a Ford’ ; $text = ‘My sister\’s car is a Ford’ ; 예2) $heading = “Date\tName\tPayment”; 특수문자는 문자열 내에 추가할 수 있다.(탭,새줄,복귀) 단, 반드시 큰타옴표(“ “) 사용
(heredoc) <<<_End ~~ _End; 6. 다중 라인 명령어 (heredoc) <<<_End ~~ _End;
7. 변수 입력 1) 변수 선언의 의무없이 PHP에서 요구하는 형식으로 자동 변환됨(느슨한 언어(?)) 2) 문자열과 숫자의 자동 변환의 예 * 숫자에서 문자로… 결과값 : (838102050에서) 1 * 문자에서 숫자로 결과값 : 78.5398175
8. 상 수 의미 : 정보를 나중에 돌려준다. 한번 정의하면 프로그램이 끝날때까지 변할 수 없다. 사용 예 3) 주의할 점 define(“ROOT_LOCATION”, “user/local/www/” ); $directory = ROOT_LOCATION; 3) 주의할 점 - $표시를 앞에 붙이지 않는다 - define 함수만 사용할 수 있다. 4) 미리 정의된 함수(매직 상수) - 형식 : _~_ 형태 (p.87 표3-5참조) - 사용 예 : echo “This is line” . _LINE_ . “of file” . _FILE_;
9. echo & print 의미 2) 처리 속도 3) 특징(사용 예) - print는 매개변수를 취하는 실제함수이며 - echo는 PHP 언어의 구조에 포함 2) 처리 속도 - 일반텍스트 출력이 echo가 다소 빠름 3) 특징(사용 예) - echo는 복잡한 표현에는 사용 불가 - 예) sb ? print “TRUE” : print “FALSE” ; 변수의 값이 참인지 거짓인지를 출력..
10. 함 수 특정 task를 실행하는 코드를 섹션으로 나누는데 사용 반복적인 코드 대신 함수를 사용하는 이점 - 코드가 간단해진다/ - 변경이 용이하다 - 소스코드의 크기가 작아진다. - 가독성이 높아진다. - 함수를 부른 코드로 값을 돌려줄 수도 있다. 함수의 정의 echo longdate(time( ) ) ; echo longdate(time( ) – 17 * 24 * 60 * 60) ; 17일간의 초를 뺀 값을 longdate함수에 전달
11. 변수 범위 지역 변수 함수내에서만 정의되어 사용하는 변수 함수가 반환 전에 처리된 일부 결과를 지역 변수 함수내에서만 정의되어 사용하는 변수 함수가 반환 전에 처리된 일부 결과를 저장하려고 만든 임시 변수 매개변수 매개변수의 확장
11. 변수 범위 2) 변수 범위의 효과 로컬범위에서 해결 $temp에 접근 실패 매개변수로 전달
11. 변수 범위 2) 전역 변수 -모든 코드에서 변수에 접근이 필요 - global 키워드사용 global $is_logged_in ; - 확실히 원하는 결과를 얻기 위한 방법을 찾을 수 없을 때만 사용 - 지역변수로 사용하는 오류 발생 가능
11. 변수 범위 3) 고정 변수 - 다음 번에 함수가 호출될 때 그 값을 유지하고 싶은 지역변수가 있을 경우 사용 - 표현식의 결과를 대입하는 일은 불가능
11. 변수 범위 4) 슈퍼 전역 변수 5) 슈퍼 전역 변수와 보안 - PHP의 환경에서 제공되지만 프로그램 내에서 전역이며 어디서든지 접근이 가능 - 슈퍼 전역 변수.배열로 이루어짐 (p.94 표3-6참조) $came_from = $_SERVER[‘HTTP_REFERRER’] ; 5) 슈퍼 전역 변수와 보안 $came_from = htmlentities($_SERVER[‘HTTP_REFERRER’]);