<?php ... ?> | PHP 열기/닫기 태그 |
<?= $var ?> | 짧은 출력 태그 |
// comment | 한 줄 주석 |
/* multi-line */ | 여러 줄 주석 |
echo "Hello"; | 문자열 출력 |
print "Hello"; | 출력 (1 반환) |
var_dump($var); | 변수 디버그 |
print_r($arr); | 배열 읽기 쉽게 출력 |
$var = "value"; | 변수 선언 |
$str = "Hello"; | 문자열 |
$int = 42; | 정수 |
$float = 3.14; | 실수 |
$bool = true; | 불리언 |
$arr = [1, 2, 3]; | 배열 |
$null = null; | 널 |
define("CONST", "value"); | 상수 정의 |
const CONST = "value"; | 클래스 상수 |
gettype($var) | 타입 가져오기 |
(int)$var, (string)$var | 타입 변환 |
isset($var) | 설정 여부 확인 |
empty($var) | 빈 값 확인 |
is_null($var) | null 확인 |
+ - * / % | 산술 연산자 |
** (power) | 거듭제곱 |
== != < > <= >= | 비교 연산자 |
=== !== | 동일 (타입 + 값) |
<=> (spaceship) | 결합 비교 |
&& || ! | 논리 연산자 |
?? | Null 병합 |
??= | Null 병합 할당 |
?: | 삼항 연산자 |
. | 문자열 연결 |
.= | 연결 할당 |
strlen($str) | 문자열 길이 |
str_word_count($str) | 단어 수 |
strrev($str) | 문자열 뒤집기 |
strpos($str, $find) | 위치 찾기 |
str_replace($find, $replace, $str) | 문자열 교체 |
substr($str, $start, $length) | 부분 문자열 |
strtoupper($str) | 대문자 |
strtolower($str) | 소문자 |
ucfirst($str) | 첫 글자 대문자 |
ucwords($str) | 단어 첫 글자 대문자 |
trim($str) | 공백 제거 |
ltrim($str), rtrim($str) | 왼쪽/오른쪽 트림 |
explode(",", $str) | 배열로 분할 |
implode(",", $arr) | 배열 합치기 |
sprintf("%s: %d", $s, $n) | 문자열 포맷 |
number_format($num, 2) | 숫자 포맷 |
"Hello $name" | 변수 보간 |
"Hello {$arr[0]}" | 복잡한 보간 |
'No $interpolation' | 작은따옴표 (리터럴) |
<<<EOT
...
EOT; | Heredoc 구문 |
<<<'EOT'
...
EOT; | Nowdoc 구문 |
$arr = [1, 2, 3]; | 인덱스 배열 |
$arr = ["a" => 1, "b" => 2]; | 연관 배열 |
array(1, 2, 3) | 배열 함수 |
range(1, 10) | 범위 배열 |
array_fill(0, 5, "x") | 배열 채우기 |
count($arr) | 배열 길이 |
array_push($arr, $val) | 끝에 추가 |
array_pop($arr) | 끝에서 제거 |
array_unshift($arr, $val) | 처음에 추가 |
array_shift($arr) | 처음에서 제거 |
array_merge($arr1, $arr2) | 배열 병합 |
array_slice($arr, $start, $len) | 배열 자르기 |
array_splice($arr, $start, $len) | 요소 제거/교체 |
in_array($val, $arr) | 존재 여부 확인 |
array_search($val, $arr) | 값 검색 |
array_keys($arr) | 키 가져오기 |
array_values($arr) | 값 가져오기 |
array_flip($arr) | 키/값 교환 |
array_reverse($arr) | 배열 뒤집기 |
array_unique($arr) | 중복 제거 |
sort($arr), rsort($arr) | 배열 정렬 |
asort($arr), ksort($arr) | 값/키로 정렬 |
usort($arr, $callback) | 커스텀 정렬 |
array_map($fn, $arr) | 배열에 함수 매핑 |
array_filter($arr, $fn) | 배열 필터 |
array_reduce($arr, $fn, $init) | 배열 축소 |
array_walk($arr, $fn) | 함수 적용 |
array_column($arr, "key") | 컬럼 추출 |
if ($cond) { } | if 문 |
if ($c) { } else { } | if-else |
if ($c) { } elseif ($c2) { } | elseif |
$cond ? $true : $false | 삼항 연산자 |
$val ?? $default | Null 병합 |
switch ($var) { case "a": break; } | switch 문 |
match ($var) { "a" => 1, default => 0 } | match 표현식 (PHP 8) |
for ($i = 0; $i < 10; $i++) { } | for 루프 |
foreach ($arr as $val) { } | foreach 루프 |
foreach ($arr as $key => $val) { } | 키와 함께 foreach |
while ($cond) { } | while 루프 |
do { } while ($cond); | do-while 루프 |
break; | 루프 종료 |
continue; | 반복 건너뛰기 |
function name($arg) { return $val; } | 함수 정의 |
function name($arg = "default") | 기본 매개변수 |
function name(string $arg): int | 타입 힌트 |
function name(?string $arg) | Nullable 타입 |
function name(mixed $arg) | mixed 타입 (PHP 8) |
function name(&$arg) | 참조로 전달 |
function name(...$args) | 가변 인자 함수 |
fn($x) => $x * 2 | 화살표 함수 |
$fn = function($x) { return $x; }; | 익명 함수 |
$fn = function($x) use ($y) { }; | use가 있는 클로저 |
abs($num) | 절대값 |
round($num, $dec) | 숫자 반올림 |
ceil($num), floor($num) | 올림/내림 |
min($arr), max($arr) | 최소/최대값 |
rand($min, $max) | 난수 |
date("Y-m-d") | 날짜 포맷 |
time() | 현재 타임스탬프 |
strtotime("next Monday") | 날짜 문자열 파싱 |
json_encode($arr) | JSON으로 인코딩 |
json_decode($json, true) | JSON 디코딩 |
class MyClass { } | 클래스 정의 |
$obj = new MyClass(); | 인스턴스 생성 |
public $prop; | public 속성 |
private $prop; | private 속성 |
protected $prop; | protected 속성 |
readonly public $prop; | 읽기 전용 속성 |
public function __construct() { } | 생성자 |
public function __destruct() { } | 소멸자 |
$this->prop | 인스턴스 속성 접근 |
self::$prop | 정적 속성 접근 |
static::method() | 늦은 정적 바인딩 |
class Child extends Parent { } | 상속 |
parent::__construct() | 부모 생성자 호출 |
interface MyInterface { } | 인터페이스 정의 |
class C implements Interface { } | 인터페이스 구현 |
abstract class A { } | 추상 클래스 |
abstract public function m(); | 추상 메서드 |
final class C { } | final 클래스 |
trait MyTrait { } | 트레이트 정의 |
use MyTrait; | 트레이트 사용 |
public function __construct(public $prop) | 생성자 프로모션 |
#[Attribute] | 어트리뷰트 |
str_contains($h, $n) | 문자열 포함 |
str_starts_with($h, $n) | 문자열 시작 |
str_ends_with($h, $n) | 문자열 끝 |
enum Status: string { case A = "a"; } | 열거형 (PHP 8.1) |
$obj?->method() | Nullsafe 연산자 |
MyClass::class | 클래스 이름 상수 |
$_GET["param"] | GET 매개변수 |
$_POST["field"] | POST 데이터 |
$_REQUEST | GET + POST + COOKIE |
$_SERVER["REQUEST_METHOD"] | 서버/요청 정보 |
$_SESSION["key"] | 세션 데이터 |
$_COOKIE["name"] | 쿠키 데이터 |
$_FILES["upload"] | 업로드된 파일 |
$_ENV["VAR"] | 환경 변수 |
session_start(); | 세션 시작 |
$_SESSION["key"] = $val; | 세션 값 설정 |
session_destroy(); | 세션 파괴 |
setcookie("name", "value", time()+3600); | 쿠키 설정 |
setcookie("name", "", time()-3600); | 쿠키 삭제 |
header("Location: /page"); | 리다이렉트 |
header("Content-Type: application/json"); | 콘텐츠 타입 설정 |
http_response_code(404); | 응답 코드 설정 |
headers_sent() | 헤더 전송 여부 확인 |
exit; / die("msg"); | 실행 중지 |
file_get_contents($path) | 파일 내용 읽기 |
file_put_contents($path, $data) | 파일에 쓰기 |
file_exists($path) | 파일 존재 확인 |
is_file($path), is_dir($path) | 타입 확인 |
fopen($path, "r") | 파일 핸들 열기 |
fread($handle, $length) | 핸들에서 읽기 |
fwrite($handle, $data) | 핸들에 쓰기 |
fclose($handle) | 핸들 닫기 |
unlink($path) | 파일 삭제 |
copy($src, $dst) | 파일 복사 |
rename($old, $new) | 파일 이름 변경/이동 |
mkdir($path, 0755, true) | 디렉토리 생성 |
scandir($path) | 디렉토리 목록 |
$pdo = new PDO($dsn, $user, $pass); | 데이터베이스 연결 |
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | 오류 모드 설정 |
$stmt = $pdo->prepare($sql); | 문 준비 |
$stmt->execute([$val]); | 매개변수로 실행 |
$stmt->bindParam(":name", $val); | 매개변수 바인딩 |
$row = $stmt->fetch(PDO::FETCH_ASSOC); | 한 행 가져오기 |
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); | 모든 행 가져오기 |
$pdo->lastInsertId() | 마지막 삽입 ID |
$pdo->beginTransaction(); | 트랜잭션 시작 |
$pdo->commit(); $pdo->rollBack(); | 커밋/롤백 |
try { } catch (Exception $e) { } | try-catch 블록 |
catch (TypeError | ValueError $e) | 여러 예외 |
finally { } | finally 블록 |
throw new Exception("msg"); | 예외 던지기 |
$e->getMessage() | 오류 메시지 가져오기 |
$e->getCode() | 오류 코드 가져오기 |
$e->getTrace() | 스택 트레이스 가져오기 |
class MyException extends Exception { } | 커스텀 예외 |
error_reporting(E_ALL); | 모든 오류 보고 |
ini_set("display_errors", 1); | 오류 표시 |
set_error_handler($callback); | 커스텀 오류 핸들러 |
set_exception_handler($callback); | 커스텀 예외 핸들러 |
trigger_error("msg", E_USER_ERROR); | 오류 트리거 |