사용자 도구

사이트 도구


language:php:개요

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.


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