변수
타입
- php에서는 변수를 선언할 때 타입을 따로 명시할 필요가 없다.
- 변수의 타입은 해당 변수에 대입하는 값에 따라 자동으로 결정되기 때문이다.
- 그럼에도 강제로 타입을 변환하고자 한다면 괄호를 이용해 타입 캐스팅을 진행
$var_01 = 10;
var_dump($var_01); // int(10)
$var_02 = (boolean) $var_01;
var_dump($var_02); // bool(true)
$var_03 = 0;
var_dump($var_03); // int(0)
$var_04 = (boolean) $var_03;
var_dump($var_04); // bool(false)
가변변수
- PHP에서는 변수의 타입뿐만 아니라 변수의 이름까지 동적으로 바꿀 수 있음
- 해당 변수의 값을 또 다른 변수의 이름으로 취급
$PHP = "HTML";
$HTML = "CSS";
$CSS = "JavaScript";
$JavaScript = "Ajax";
$Ajax = "PHP";
echo $PHP; // HTML
echo $$PHP; // $HTML -> CSS
echo $$$PHP; // $$HTML -> $CSS -> JavaScript
echo $$$$PHP; // $$$HTML -> $$CSS -> $JavaScript -> Ajax
echo $$$$$PHP; // $$$$HTML -> $$$CSS -> $$JavaScript -> $Ajax -> PHP
echo $$$$$$PHP; // $$$$$HTML -> $$$$CSS -> $$$JavaScript -> $$Ajax -> $PHP -> HTML
echo $$$$$$$PHP; // $$$$$$HTML -> $$$$$CSS -> $$$$JavaScript -> $$$Ajax -> $$PHP -> $HTML -> CSS ...
include 와 require
- 두 함수 모두 여러 파일로 나누어진 코드를 불러오는 기능
- require은 에러상황시 Fatal error을 발생시키고 코드의 실행을 중지 시킴
- 에러 발생시 코드를 중단해야 하는 경우 사용, 특히 DB나 필수로직을 점검해야하는 코드를 포함하고 있는 경우에 사용
$_SERVER['DOCUMENT_ROOT']
- 서버의 기본 경로를 알 수 있으며 파일경로 작성시 도움이 되는 함수
- httpd.conf파일에 설정된 웹서버의 루트 디렉터리를 의미
".../.../.../common/common.php"
↓
$_SERVER['DOCUMENT_ROOT']."/common/common.php";
isset, empty, unset
-
isset
- 전달 받은 변수가 선언되어 초기화 있는지를 검사
-
선언되고 초기화된 변수가 존재하면 true를 반환
-
empty
- 전달받은 변수가 비어있는지를 검사
- 변수가 존재하지 않거나, false 값을 가질 때 모두 true를 반환
- false로 인식하는 값
- 정수 0
- 실수 0.0
- 문자열 "0"
- 빈 문자열 ""
- null
- false
- 빈 배열 array()
- 초기화되지 않은 변수
- 내부적으로 작동하는 원리
!isset($var) | $var==false
-
unset
-
전달받은 변수를 제거
-
예시 코드
$var;
var_dump(isset($var)); // false
var_dump(empty($var)); // true
$var = 5;
var_dump(isset($var)); // true
var_dump(empty($var)); // false
$var = 0;
var_dump(isset($var)); // true
var_dump(empty($var)); // true
unset($var);
var_dump(isset($var)); // false
var_dump(empty($var)); // true
슈퍼 글로벌(superglobal)
- 미리 정의된 전역 변수
- 특별한 선언 없이 스크립트 내의 어디에서라도 바로 사용 가능
- 연관 배열 형태
- 목록
- $GLOBALS
- $_SERVER
- $_GET
- $_POST
- $_FILES
- $_COOKIE
- $_SESSION
- $_REQUEST
- $_ENV
define(name, value, [case-insensitive])
- 상수를 정의하는 함수
- case-insensitive(true/false)는 대소문자 구분 여부를 설정한다(default는 false)
explode(string $separator , string $string , int $limit = PHP_INT_MAX )
- 문자열을 특정문자열(separator)로 나누어 배열로 반환해주는 함수
- java의 split과 동일
배열
- PHP에서 배열(array)은 맵(map)으로 이루어진, 순서가 있는 집합을 의미
- 맵(map)은 한 쌍의 키(key)와 값(value)으로 이루어져 있음