너의 개발은/PHP

    PHP: 클래스 (상속, 문맥, 익명 클래스)

    객체지향 PHP 언어도 객체지향(Object-Oriented Programming)을 지원합니다. 이전의 레거시 프로젝트에서는 함수로 표현하지만, 라라벨 등의 모던 프레임워크에서는 객체지향을 기본으로 합니다. 많은 객체지향 언어들이 클래스를 사용하여 현실세계에 존재하는 개체(Entity)를 묘사하며, 행동과 상태, 그리고 현실세계에서 존재하는 상속이나 인터페이스 등을 통해서 다채롭게 표현할 수 있습니다. 이는 모두 우리가 살아가는 세계를 프로그램에서 표현하기 위함이며 조금 더 인간세계와 매핑하기 좋게 만들어줍니다. 함수형 프로그래밍은 프로그램을 조금 더 단순하게 만들어줄 수 있지만, 함수가 각자 독립적이므로 직접적으로 관계를 표현하지 않습니다. 그러나 객체지향 프로그래밍은 관계와 계를 표현할 수 있으므로..

    PHP: 함수 (익명 함수, 화살표 함수, Closure)

    함수 함수(Functions)라는 개념은 많은 프로그래밍 언어에서 중요합니다. 코드의 중복을 최소화하고 기능 단위로 코드를 구성함으로서 말 그대로 블록처럼 끼워맞춰 어플리케이션을 구성할 수 있도록 해줍니다. 또한 하나를 변경했을 때 다른 곳은 변경하지 않더라도 적용되기때문에 유지보수에 큰 도움을 줍니다. function 함수의 선언은 function 키워드를 사용하여 다음과 같이 할 수 있습니다. foo 라는 이름을 가진 함수가 정의되었습니다. function foo() { echo 'Hello, world'; } 이제 함수를 사용하려면 호출을하면 되는데, 대략 세 가지 방법을 소개하고자 합니다. 함수의 이름으로 호출하기 함수의 이름과 함께 소괄호를 사용하여 함수를 호출합니다. foo(); // -> H..

    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..