PHP 기본 문법 정리

변수

타입

  • 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)으로 이루어져 있음

links

social