~~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
}