PHP 시작 (2/2) - 알아두면 좋은 몇가지
PHP 시작 (2/2) - 알아두면 좋은 몇가지
앞에서 PHP를 시작하는데 알아야할 20가지를 정리하였다.
이번 포스팅에서는 앞의 포스팅 PHP 시작 - 이것만은 알고 시작하자 에 이어, 추가적으로 알아두면 좋은 몇가지를 적어보겠다.
1. Boolean 표현식 ( TRUE, FALSE )
PHP에서 TRUE 와 FALSE 는 미리 정의된 표현식이다.
TRUE 는 1, FALSE 는 NULL 이거나 아무것도 없다.
* 어떤 언어에서는 FALSE는 0이나 -1일 수도 있으므로, 각 언어에서 정의를 검사하는 일은 해봐야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php echo "a: [". (20 > 9) . "]<br />"; // a: [1] 출력 echo "b: [". (5 == 6 ) . "]<br />"; // b: [] 출력 echo "c: [". (1 == 0 ) . "]<br />"; // c: [] 출력 echo "d: [". (1 == 1) . "]<br />"; // d: [1] 출력 echo "e: [". TRUE . "]<br />"; // e: [1] 출력 echo "f: [". FALSE . "]<br />"; // f: [] 출력 ?> |
2. 연산자 우선순위
연산자 | 형 식 |
( ) | 괄호 |
++ -- | 증가 /감소 |
! | 논리 |
* / % | 산술 |
+ - . | 산술과 문자열 |
<< >> | 비트 |
< <= > >= <> | 비교 |
== != === !== | 비교 |
& | 비트(그리고 참조) |
^ | 비트 |
| | 비트 |
&& | 논리 |
|| | 논리 |
? : | 삼항 |
= += -= *= /= .= %= &= != ^= <<= >>= | 대입 |
and | 논리 |
xor | 논리 |
or | 논리 |
3. 결합성
보통 표현식은 우선순위가 작용하는 연산자를 제외하고는 왼쪽에서 오른쪽 방향으로 처리됐다. 그러나 오른쪽에서 왼쪽으로 처리해야 하는 연산자도 있다.
아래 표는 오른쪽에서 왼쪽으로 결합성을 가진 연산자다.
연산자 | 설 명 |
NEW | 새로운 객체 생성 |
! | 논리적인 NOT |
~ | 비트의 NOT |
++ -- | 증가와 감소 |
+ - | 단항의 양수와 음수 |
(int) | 정수(integer)로 형변환 |
(double) | 실수(double)로 형변환 |
(string) | 문자열(string)로 형변환 |
(array) | 배열(array)로 형변환 |
(object) | 객체(object)로 형변환 |
@ | 에러를 보고하지 못하게 함 |
? : | 조건문 |
= | 대입 |
4. 관계형 연산자
관계형 연산자는 두 피연산자를 검사해 참이나 거짓 중 하나로 불 형태의 결과를 반환한다.
관계형 연산자는 3종류로 등가 연산자, 비교 연산자, 논리 연산자는 관계형 연산자이다.
등가연산자는 ==, === , != , !==가 있다.
숫자로 된 문자열은 숫자와 비교될 때 숫자 형식으로 변환한다.
== , != 는 변수의 값을 비교하고, ===, !== 는 값이 정확히 일치하는지 비교한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $a = "1000"; $b = "+1000"; if($a == $b) echo "1"; // 1 출력; 1000 과 +1000은 같은 값 if($a === $b) echo "2"; // if문 조건 FALSE ; 1000과 +1000은 정확히 일치하지 않음 if($a != $b) echo "3"; // if 문 조건 FALSE ; 1000과 +1000은 같은 값 if($a !== $b) echo "4"; // 4 출력 ; 1000과 +1000은 정확히 일치하지 않음 ?> |
비교연산자를 사용하면 등가와 부등 연산자보다 많은 것을 검사할 수 있다.
>(큰), <(작은), >=(크거나 같은), <=(작거나 같은)을 제공한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php $a = 2; $b = 3; if($a > $b) echo "$a is greater than $b<br />"; // 출력 안됨 if($a < $b) echo "$a is less than $b<br />"; // 2 is less than 3 출력 if($a >= $b) echo "$a is greater than or equal to $b<br />"; // 출력 안됨 if($a <= $b) echo "$a is less than or equal to $b<br />"; // 2 is less than or equal to 3 출력 ?> |
논리연산자는 참이나 거짓의 결과를 만들기 때문에 불 연산자이다.
논리 연산자로 AND, OR, XOR, NOT 이 있다.
논리 연산자 | 설 명 |
AND | 두 피연산자가 모두 참이면 참 |
OR | 하나의 피연산자가 참이면 참 |
XOR | 두 피연산자 중 하나가 참이면 참 |
NOT | 피연산자가 거짓이면 참 또는 피연산자가 참이면 거짓 |
논리 연산자의 결과가 FALSE 일때 NULL을 출력한다.
AND와 OR는 &&와 ||보다 우선순위가 아래이다.
OR 연산자에서 앞의 조건이 참일 경우 뒤의 조건은 확인하지 않음에 주의하자.
입 력 | 연산자와 결과 | |||
a | b | AND | OR | XOR |
참 | 참 | 참 | 참 | 거짓 |
참 | 거짓 | 거짓 | 참 | 참 |
거짓 | 참 | 거짓 | 참 | 참 |
거짓 | 거짓 | 거짓 | 거짓 | 거짓 |
5. 암묵적 형변환과 명백한 형변환
PHP는 느슨하게 입력된 언어라서 단지 사용함으로써 변수와 그 타입을 정의할 수 있도록 허용한다. 또한 필요할 때는 값도 자동으로 형변환된다. 이를 암묵적인 형변환이라고 한다.
1 2 3 4 5 6 7 8 9 10 11 | <?php $a = 56; // 정수형으로 대입 $b= 12; // 정수형으로 대입 $c = $a / $b; // 계산 결과값 4.66 실수형으로 암묵적 형변환 echo $c; // 실수형 4.66 출력 ?> |
하지만 실수형으로 계산되는 암묵적 형변환을 원하지 않을 수 있다. $c 를 정수형으로 사용하기 위해서 (int)를 사용해 $a/$b를 강제로 형변환한다. 이것을 명백한 형변환이라고 한다.
1 2 3 4 5 6 7 8 9 10 11 | <?php $a = 56; // 정수형으로 대입 $b= 12; // 정수형으로 대입 $c = (int) ($a / $b); // 계산 결과값 4.66 을 정수형으로 명백한 형 변환 echo $c; // 정수 4 출력 ?> |
형변환 형식 | 설 명 |
(int) (integer) | 소수점 이하를 없애고 정수로 변환 |
(bool) (boolean) | 불 형으로 변환 |
(float) (double) (real) | 실수형으로 변환 |
(string) | 문자열로 변환 |
(array) | 배열로 변환 |
(object) | 객체로 변환 |
여기까지 PHP를 시작할 때 알아야할 기본사항들을 정리하였다.
이어서 조건문, 반복문에 대해 포스팅을 하겠다.
출처: https://hyeonstorage.tistory.com/102?category=549768 [개발이 하고 싶어요]
'PHP > php' 카테고리의 다른 글
PHP의 객체 (1/2) (클래스 정의, 객체 생성, 접근, 생성자, 소멸자) (0) | 2019.07.25 |
---|---|
PHP의 함수 (정의, 반환, 참조, 포함과 요구) (0) | 2019.07.25 |
PHP의 반복문 (for, while, do while, break, continue) (0) | 2019.07.25 |
PHP의 조건문 (if, switch, ? 연산자) (0) | 2019.07.25 |
PHP 시작 (1/2) - 이것만은 알고 시작하자. (0) | 2019.07.25 |
[PHP] WAMP 설치하기 (3/4) - Zend Server CE mySQL 계정 생성 (0) | 2019.07.25 |
[PHP] WAMP 설치하기 (2/4) - Zend Server CE 에러 수정 및 관리자 페이지 접속 (0) | 2019.07.25 |
[PHP] WAMP 설치하기 (1/4) - Zend Server CE 설치하기 (0) | 2019.07.25 |