php

    PHP: 파일 분할 (include, require)

    include include 언어구조는 여러 개의 PHP 문서가 있을 때, 소스코드를 포함시킬 때 사용합니다. 대부분은 상대경로를 사용합니다. php.ini 설정을 바꾸면 URL 형태로도 포함시킬 수 있으나, 보안의 측면에서 좋은 접근이라고 볼 수는 없습니다. 참고로 이러한 포함형태는 문맥과 스코프를 동일하게 가져갈 수 있습니다. 함수 내부에서 포함시키면 스코프는 함수입니다. include 'HelloWorld.php'; include_once _once 가 붙으면 해당 파일을 한 번만 포함시킵니다. 즉, 평범하게 include 를 사용하면 여러번 포함시킬 수 있다는 이야기입니다. 따라서 중복으로 포함되는 경우를 막을 때 사용하면 되겠습니다. include_once 'HelloWorld.php'; req..

    PHP: 반복문 (for, while)

    for 모든 반복문의 기초는 for 문입니다. 최근 많은 언어에서 while 문은 제거하는 방향으로 가고있으나 for 문은 그 기반으로서 반복문을 이야할 때 꼭 사용되고 있습니다. 다만 키워드만 같을 뿐이고 내부 문법이 조금씩 다를 뿐이죠. 다른 언어와 마찬가지로 클래식한 for 문은 아래와 같고, 조건이 충족하는 순간까지 반복하게 됩니다. 아래의 코드는 배열의 길이만큼 반복을 하고 있습니다. $messages = [ 'Hello, world', 'Who are you?', 'Bye' ]; for ($i = 0; $i < count($messages); $i++) { echo $messages[$i] . PHP_EOL; } foreach 배열과 같이 iterable 한 데이터는 foreach 문으로 돌릴..

    PHP: 조건문 (if, switch)

    if ~ elseif ~ else if ~ elseif ~ else 문은 다른 언어와 크게 다르지 않습니다. 조건에 맞으면 if, 안 맞으면 elseif, else 를 순차적으로 검사하고 처리합니다. 우리가 알아야 하는 것은 조건을 사용할 때, false 로 처리되는 것들이며, [], '', false, 0, null 과 같은 것들은 모두 거짓으로 판단됩니다. // [], '', false, 0, null -> false if (true) { echo 'Hello, world'; } // -> Bye if (false) { echo 'Hello, world'; } else { echo 'Bye'; } // -> Who are you? if (false) { echo 'Hello, world'; } els..

    PHP: 연산자

    수학 기본적인 사칙연산, 나머지 연산, 거듭제곱 연산이 있습니다. 이는 각각 +, -, *, /, %, ** 으로 표현됩니다. 2 + 2; // -> 4 17 - 3.5; // -> 13.5 10 / 3; // -> 3.333 6 * 9; // -> 54 4 % 3; // -> 1 2 ** 4; // -> 16 할당 등호를 사용하여 표현하는 연산자로, $count = $count + 1 을 $count += 1 과 같이 단축하여 표현할 수 있고, 또한 변수에 값을 할당할 때도 사용하여 나타냅니다. 이 연산은 =, +=, -=, /=, *=, %=, **=, &=, |=, ^=, = 으로 사용할 수 있습니다. $message = 'Hello, '; $message .= 'world'; $message; /..

    PHP: 상수 (매직상수)

    상수 상수를 선언하는 방법은 대략 두 가지의 방법이 있습니다. 하나는 조금은 고전적이고, 하나는 요즘 방식이라고 볼 수 있죠. define define 을 사용하면 상수를 정의할 수 있는데, 일반적인 스칼라 값이나 배열 또한 가능합니다. 이는 고전적인 방법으로 스코프의 제약을 받지 않으며, 함수의 내부에서 선언하든 밖에서 선언하든 전역적이라고 볼 수 있습니다. 이는 런타임에 정의됩니다. Defines a named constant at runtime. define('CONSTANT', 'Hello, world'); function foo() { define('MESSAGE', 'Who are you?'); } foo(); // -> Hello, world Who are you? var_dump(CONST..