~~Title:PHP 언어 개요~~ {{page>language:php:php_문서_목차&noheader&nofooter&noeditbtn&firstseconly}} ====== 언어 개요 ====== ====== form 필드에 액세스 ====== $_POST[‘abc’] // ok 그외 문법상 남아 있는 것들 $abc; // register_globals 옵션이 켜져 있어야한다. 비추천이라고 한다. $HTTP_POST_VARS[‘abc’]; // 너무 길어서 비추천이라고한다. 폼필드에 액세스하는 키워드 * $_POST * $_GET * $_REQUEST ====== PHP 언어 영역 설정 ====== ====== 여러 라인의 문자열 표시 ====== echo << NULL 값이 있다. 변수 타입은, 입력되는 변수 값에 따라 타입이 바뀐다. ====== 가변변수 ====== 한 변수가 다른 변수의 이름을 값을 갖을 수 있다. 변수 이름을 갖는 변수를 사용해 값도 사용하거나 대입이 가능하다. $varname = ‘tempvar’; $$varname = 5; // $tempvar = 5와 같다. ====== 상수 ====== define( ‘NEWDEFINE’, 100 ) newdefine 이라는 상수가 추가되었다. 사용할때에는 이름만 사용한다. echo ‘NEWDEFINE; // $를 붙이지 않는다. ====== 변수의 범위 ====== - 목록수퍼글로벌 변수는 스크립트 전역에서 사용가능 - 한번 선언된 상수는 스크립트 전역에서 사용가능 - 전역변수는 스크립트 내에서 선언된 변수로, 스크립트에서는 사용할 수 있지만 함수에서는 사용 못한다. - 함수 안에서 전역으로 사용된 변수는 함수 밖에서는 사용할 수 없지만, 사용시마다 값이 보존되어 다음에 사용할 수 있다. - 함수 안에서 사용된 변수는 함수가 종료되면 삭제된다. ====== 수퍼글로벌 변수 ====== * $GLOBAL - 모든 전역 변수의 배열. $GLOBAL[‘variable’] 처럼 사용 가능 * $_SERVER - 서버 환경 변수의 배열 * $_GET - get 메소드로 넘어온 변수의 배열 * $_POST - post 메소드로 넘어온 변수의 배열 * $_COOKIE - 쿠키 변수의 배열 * $_FILES - 파일 업로드와 관련된 변수의 배열 * $_ENV - 환경 변수의 배열 * $_REQUEST - 사용자가 입력한 변수의 배열 * $_SESSION - 세션변수의 배열 ====== 비교에서 다른 부분 ====== <> : 다르다. ====== 변수타입에서 ====== * 숫자에 e,E가 있으면 실수로 인식. 그 이외의 영문자가 있으면 문자열로 인식.(검증필요) ====== 참조연산자 ====== $a = 5; $b = &$a; // $b는 $a의 참조 변수 unset( $a ); // 참조를 끊는다. ====== 연산자 ====== ~ 1,0을 반전 ^ xor. 양쪽에 있는 1만 서로 결합시킨다. (1을 모은다.) new 클래스 생성 -> 클래스 멤버 접근 ‘,’ 함수 인자 상품 열거 @ 함수 실행시 오류 억제. 잘 써야겠지. php.ini 에 tracks_errors 설정이 있어야 된다? 에러 메시지는 $php_errormsg에 저장 ====== 실행연산자 ====== ` 와 ` 사이의 명령어를 실행. $out = `dir c:\` echo ‘
’ . $out . ‘
’;
====== 배열 ====== * "[" 와 "]" 를 사용해서 배열 요소에 접근 * 특정 배열 구성에 대한 접근은 => 로 ====== 배열연산자 ====== | + | $a 와 $b의 모든 요소를 리턴한다. ( 같은 값이 있다면? ) | | == | 같은 요소들만 리턴한다. | | === | 같은 요소 같은 순서를 리턴한다. | | !== | $a 와 $b 가 동일하지 않으면 리턴? | ====== 클래스검사 ====== instanceof() - 어느 클래스인가 검사한다. ====== 함수 ====== number_format( num , 2 ); //소수점을 포함한 숫자를 출력 gettype(), settype() ;; //타입 종류를 리턴하거나 설정 ====== string : 문자열 다루기 ====== ===== 기본 ===== 문자열을 표시하는 기호는 (',') 와 (",") 둘다 가능하다. 'string 1'; "String 2"; ===== 여러줄을 입력하기 ===== 여러 문자열이 있는 경우 '<<<' 키워드와 간단한 이름으로 여러 문자열을 특별한 편집 없이 있는 그대로 입력할 수 있다. $strVal1 = << ===== 스트링을 배열의 인덱스로 사용하기 ===== 배열과 같은 리스트형 데이터에서 스트링을 배열의 키로 사용할때 \\ 키 스트링을 변수에 저장하고 그 변수를 배열의 키로 바로 사용할 수 있다. $tmarr = array( 'abc' => 2 ); // 사용하려면, echo $tmarr['abc']; // 2 출력 // 문자열이 변수에 저장하고 그 변수로 배열에 접근하려면 $keystr = 'abc'; echo $tmarr[{$keystr}]; // 2 출력 ===== 스트링을 변수 이름으로 사용 ===== 스트링을 갖고 있는 변수를 다른 문자열에 포함 시켜서 사용할때, 복잡하게 사용하지 않고 문자열에 바로 넣고 사용하는 방법 $tmstr = 'hello'; // 1 echo $tmstr . ' <-- string out'; // 결과 : hello <-- string out // 2 echo "${tmstr} <-- string out"; // 결과 : hello <-- string out ${변수} 형식을 쓰려면 쌍따옴표("")로 감싸야 한다. '\n'과 같은 특수 기호를 인식하게 하려면 ' 대신 "를 사용해서 스트링을 만들어야한다. 단일따옴표는 특수 기호를 인식하지 않는다. 'This is test \n' // 해봐야 줄바꿈은 되지 않는다. "This is Test \n" // 이래야 줄바꿈이 먹는다. ======== mixed ====== mixed; //실제 이런 변수가 있는 것은 아니고 표기상 모든 타입을 받는다는 표시. ====== print vs echo ====== print vs echo //기능은 같지만 print가 더 느리다네? ====== 비교문 ====== if() { } else() { } switch() { } for, foreach / break , continue ====== declare ====== // c++의 “#ifdef”와 같은 역할. 실행시 상태에 따라 코드 실행 여부를 결정 declare( ) { // code block }