우선순위와 결합 순서
결합 순서 | 연산자 | 우선순위 |
---|---|---|
왼쪽 | , | 낮음 |
왼쪽 | or | |
왼쪽 | xor | |
왼쪽 | and | |
오른쪽 | ||
왼쪽 | = += -= *= /= .= %= &= |= ^= ~= <<= >>= | |
왼쪽 | ? : | |
왼쪽 | || | |
왼쪽 | && | |
왼쪽 | | | |
왼쪽 | ^ | |
왼쪽 | & | |
없음 | == != === !== | |
없음 | < <= > >= | |
왼쪽 | << >> | |
왼쪽 | + - . | |
왼쪽 | * / % | |
오른쪽 | ! ~ ++ -- (int) (double) (string) (array) (object) @ | |
오른쪽 | [ ] | |
없음 | new | |
없음 | ( ) | 높음 |
변수와 관련된 함수
변수의 데이터 형을 검사/설정
string gettype(mixed var); // 변수의 자료형 검사 bool settype(mixed var, string type); // 변수의 자료형 설정 $a = 56; echo gettype($a).'<br />'; // integer settype($a, 'double'); echo gettype($a).'<br />'; // double
// bool형 함수들(mixed var를 인자로 받는다) is_array() is_double(), is_float(), is_real() is_long(), is_int(), is_integer() is_string() is_bool() is_object() is_resource() is_null() is_scalar() // 정수형, 불리언형, 문자열, 실수형 is_numeric() // 숫자, 숫자인 문자열 is_callable() // 호출할 수 있는 함수의 이름인지 검사
변수 상태 검사
boolean isset(mixed var[,mixed var, ...]); /* 이 변수가 존재한다면 true 여러 개를 인자로 줄 경우 모든 변수가 존재해야 true */ void unset(mixed var[, mixed var, ...]); // 변수 삭제 boolean empty(mixed var); // 비어 있지 않고 0이 아닌 값일 경우 false
변수형 변환
int intval(mixed var[, int base]); // base에 var의 진법 입력력 float floatval(mixed var); string strval(mixed var);
intval 함수는 base를 인자로 받을 수 있다. 예를 들어 16진수 문자열을 정수로 전환할 때 사용한다.
다른 자료형도 마찬가지로 사용할 수 있다.(doubleval 등)
조건문, 반복문
조건문, 반복문 또한 C언어와 같은 타 프로그래밍 언어와 매우 흡사하므로 아주 간략하게 넘어간다.
조건문 : if문, else문, elseif문(else if, elseif 동일), switch문
반복문 : while문, do while문, for문, foreach문
foreach 문
// 숫자 인덱스 배열 foreach($array as $item) { echo $item." "; } // 연관 배열 foreach($array as $key => $value) { echo "$key : $value".'<br />'; }
foreach 문은 배열을 쉽게 다루기 위해 사용하는 반복문으로 자세한 것은 3장 배열에서 공부한다.
exit
if($result == 0) { echo 'exit!'; exit; }
exit을 사용하면 php 스크립트를 끝낼 수 있다.
대체 제어 구조 문법 사용하기
{ 대신에 : 를 사용하고 } 대신에 새로운 키워드를 사용할 수 있다.
키워드 : endif, endswitch, endwhile, endfor, endforeach
do while 문은 대체 문법이 존재하지 않는다.
if($result == 0) : echo 'exit'; exit; endif;
위 코드는 exit의 예제 코드와 완전히 동일하다.
declare
declare (directive) { //block }
실행 지침을 설정하기 위해 사용된다. 자주 쓰이지는 않는다. 자세한 것은 25장 대규모 프로젝트에서 PHP와 MySQL과 26장 디버깅에서 배운다.