목차

~~Title:PHP 언어의 기본~~

언어의 기본

form 필드에 액세스

$_POST[‘abc’] // ok

그외 문법상 남아 있는 것들

$abc; // register_globals 옵션이 켜져 있어야한다. 비추천이라고 한다.
$HTTP_POST_VARS[‘abc’]; // 너무 길어서 비추천이라고한다.

폼필드에 액세스하는 키워드

PHP 언어 영역 설정

<?php.. ?>

여러 라인의 문자열 표시

echo <<<theEnd
  …. (문자열)
	theEnd

NULL 값이 있다.

변수 타입은, 입력되는 변수 값에 따라 타입이 바뀐다.

가변변수

한 변수가 다른 변수의 이름을 값을 갖을 수 있다. 변수 이름을 갖는 변수를 사용해 값도 사용하거나 대입이 가능하다.

$varname = ‘tempvar’;
$$varname = 5;		// $tempvar = 5와 같다.

상수

define( ‘NEWDEFINE’, 100 )

newdefine 이라는 상수가 추가되었다. 사용할때에는 이름만 사용한다.

echo ‘NEWDEFINE;	// $를 붙이지 않는다.

변수의 범위

수퍼글로벌 변수

비교에서 다른 부분

<> : 다르다.

변수타입에서

참조연산자

$a = 5;
$b = &$a;	// $b는 $a의 참조 변수
unset( $a );	// 참조를 끊는다.

연산자

~	1,0을 반전
^	xor. 양쪽에 있는 1만 서로 결합시킨다. (1을 모은다.)
new	클래스 생성
->	클래스 멤버 접근
‘,’	함수 인자 상품 열거
@	함수 실행시 오류 억제. 잘 써야겠지. php.ini 에 tracks_errors 설정이 있어야 된다?
	에러 메시지는 $php_errormsg에 저장

실행연산자

` 와 ` 사이의 명령어를 실행.

$out = `dir c:\`
echo<pre>. $out .</pre>;

배열

배열연산자

+ $a 와 $b의 모든 요소를 리턴한다. ( 같은 값이 있다면? )
== 같은 요소들만 리턴한다.
=== 같은 요소 같은 순서를 리턴한다.
!== $a 와 $b 가 동일하지 않으면 리턴?

클래스검사

instanceof() - 어느 클래스인가 검사한다.

함수

number_format( num , 2 ); //소수점을 포함한 숫자를 출력
gettype(), settype() ;; //타입 종류를 리턴하거나 설정

string : 문자열 다루기

기본

문자열을 표시하는 기호는 (',') 와 (“,”) 둘다 가능하다.

'string 1';
"String 2"; 

여러줄을 입력하기

여러 문자열이 있는 경우 '«<' 키워드와 간단한 이름으로 여러 문자열을 특별한 편집 없이 있는 그대로 입력할 수 있다.

$strVal1 = <<<EOD
This is custom string
and 
multi line
EOD;
// 마지막에 ';' 잊으면 곤란.

스트링을 배열의 인덱스로 사용하기

배열과 같은 리스트형 데이터에서 스트링을 배열의 키로 사용할때
키 스트링을 변수에 저장하고 그 변수를 배열의 키로 바로 사용할 수 있다.

$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" // 이래야 줄바꿈이 먹는다.
</code
>======== mixed ======
 
<code php>
mixed;
//실제 이런 변수가 있는 것은 아니고 표기상 모든 타입을 받는다는 표시.

print vs echo

print vs echo
//기능은 같지만 print가 더 느리다네?

비교문

if() { } else() { }
 
switch() { }
 
for, foreach / break , continue

declare

// c++의 “#ifdef”와 같은 역할. 실행시 상태에 따라 코드 실행 여부를 결정
declare( )
{
	// code block
}