
클래스를 정의할 때 static 키워드를 사용한 프로퍼티와 메서드는 해당 클래스의 인스턴스를 생성하지 않아도 접근할 수 있습니다. 이러한 프로퍼티와 메서드를 정적 멤버(static member)라고 부릅니다. 이러한 정적 멤버의 특징은 다음과 같습니다. static 키워드로 선언된 정적 프로퍼티는 인스턴스화된 객체에서는 접근할 수 없습니다. class StaticMember { public static $staticProperty = "static property"; public static function showProperty() { echo self::$staticProperty; } } $var = new StaticMember(); echo $var->$staticProperty static 키..

PHP에서 클래스는 class 키워드를 사용하여 다음과 같이 선언할 수 있습니다. class 클래스이름 { 클래스의 프로퍼티와 메소드의 정의 } PHP에서 클래스의 이름을 생성할 때는 반드시 다음 규칙을 지켜야 합니다. 클래스의 이름은 숫자와 구분을 빠르게 하려고 숫자로 시작할 수 없습니다. 클래스의 이름은 영문자(대소문자), 숫자, 언더스코어(_)로만 구성됩니다. 클래스의 이름 사이에는 공백이 포함될 수 없습니다. 클래스의 이름은 대소문자를 구분합니다. PHP에서 미리 정의한 예약어(reserved word)는 클래스의 이름으로 사용할 수 없습니다. 클래스는 클래스만의 상수와 변수를 가질 수 있으며, 이것을 프로퍼티(property)라고 합니다. 또한 메서드(method)라고 불리는 연산을 정의할 수 ..

전달받은 문자열의 길이를 하나씩 세는 것은 매우 비효율적입니다. PHP에서는 전달받은 문자열의 길이를 손쉽게 알려주는 strlen() 함수를 제공합니다. $str = "Hello, PHP"; echo strlen($str); 만약 strlen()이 함수에 영문자만이 아닌 한글이 포함된 문자열이 전달되면 문자열의 길이가 아닌 문자열의 총 바이트(byte)수를 반환합니다. 따라서 한글이 포함된 문자열의 정확한 문자열 길이를 반환받기 위해서는 mb_strlen() 함수를 사용해야 합니다. mb_strlen() 함수는 문자열뿐만 아니라 두 번째 인수로 인코딩 방식까지 전달받을 수 있습니다. 이렇게 전달받은 인코딩 방식으로 해당 문자열을 해석하여 정확한 문자열의 길이를 반환합니다. 만약 두 번째 인수를 전달받지 ..

PHP에서 배열을 만들기 위해서는 다음과 같이 선언할 수 있습니다. 선언된 배열 요소의 개수를 알고 싶다면 count() 함수와 sizeof() 함수를 사용할 수 있습니다. array_count_values() 함수는 전달받은 배열의 배열 요소 값을 모두 확인하여 해당 값이 몇 번 등장하는지 반환합니다. PHP 배열에는 현재 선택된 배열 요소가 어느 요소인지를 가리키는 포인터가 별도로 존재합니다. 이러한 내부 포인터를 배열 포인터라고 하며 이 포인터는 배열이 생성되면 자동으로 배열의 첫 번째 요소를 가리킵니다. current() 함수와 pos() 함수는 배열 포인터가 현재 가리키고 있는 요소를 반환합니다. 배열 포인터를 이동시키고 싶다면 next() 함수를 사용할 수 있습니다. 그리고 이를 반환합니다. ..

PHP는 많은 내장 함수를 지원하고 있습니다. 1. 변수 관련 함수 변수 관련 함수는 세 가지의 기능을 제공합니다. 먼저 변수의 타입 변경입니다. 대표적으로 gettype() 함수는 전달받은 변수의 타입을 반환합니다. 변수를 전달하면 타입에 따라 해당 타입의 이름을 문자열로 반환하는 형태를 가지고 있습니다. 그러나 float 형의 경우에는 float가 아닌 double을 반환하며 표준 타입이 아닌 경우에는 unknown type을 반환합니다. gettype() 함수는 내부적으로 문자열을 비교하기 때문에 실행속도가 느리다는 단점이 있습니다. 그래서 이를 보완하기 위해 다음과 같은 함수들을 사용할 수 있습니다. 함수 설명 is_array() 전달받은 변수의 타입이 배열인지를 확인함. is_bool() 전달받..

PHP 함수는 여러가지로 활용할 수 있습니다. 1. 조건적인 함수(conditional function) 조건적인 함수는 특정 조건을 만족할 때만 선언되는 함수입니다. 설정된 조건을 만족하지 못했을 때는 선언 자체가 되지 않습니다. 그러므로 해당 함수를 호출할 수 없습니다. 2. 함수안의 함수(function within function) PHP에서는 함수 안에 또 다른 함수를 선언할 수 있습니다. PHP에서 모든 함수는 전역 함수이므로 내부에서 선언된 함수라도 해당 함수 외부에서 호출할 수 있습니다. 위 예제에서 in() 함수는 out() 함수 내부에서 정의되고 있습니다. 따라서 out()라인 이전에 in()함수를 호출하려고 하면 호출되지 않습니다. 3. 재귀 함수(recursive function) ..

함수(function)은 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록을 말합니다. 함수를 사용하는 가장 큰 이유는 반복적인 코드의 작성을 피할 수 있기 때문입니다. PHP에서 함수는 function 키워드로 선언되며 다음과 같은 구성 요소를 가지고 있습니다. 1. 함수 이름 2. 매개변수 3. 수행코드 PHP에서는 미리 작성되어 제공되는 많은 내장 함수들이 있습니다. 그러나 개발자가 필요로 하는 기능을 가진 함수가 없다면 직접 함수를 만들 수 있습니다. 이런 함수를 사용자 정의 함수라고 합니다. 사용방법은 위와 동일하지만 다음 주의사항을 따라 작성해야합니다. 1. 함수의 이름은 문자와 숫자 언더스코어만 사용할 수 있습니다. 2. 함수의 이름은 숫자로 시작할 수 없습니다. 3. 여러 함수가..

PHP에서의 제어문은 C언어와 사용법이 비슷하기 때문에 자세한 설명은 생략하도록 하겠습니다. 하지만 기타제어문 중 goto문의 개념만 짧게 짚고 넘어가도록 하겠습니다. 1. goto goto 문은 프로그램의 흐름을 지정된 레이블(label)로 무조건 변경하는 명령문입니다. goto 문은 다른 제어문과 다르게 아무 조건 없이 제어를 옮겨줍니다. 따라서 가장 손쉽게 사용할 수 있지만 프로그램의 흐름을 매우 복잡하게 만들기도 합니다. goto문은 조건없이 프로그램의 흐름을 넘겨준다는 장점이 있지만 흐름을 복잡하게 만드는 단점때문에 실제 사용을 지양합니다. 만약 불가피하게 사용이 필요하다면 다음을 따릅니다. PHP는 제어문을 위해 사용할 수 있는 또 하나의 대체 문법을 제공하고 있습니다. 이 대체 문법은 조건문..

7. 삼항 연산자(ternary operator) 삼항 연산자는 유일하게 피연산자를 세 개를 가지는 조건 연산자입니다. 삼항 연산자의 문법은 다음을 따릅니다. 조건식 ? 반환값1 : 반환값2 물음표 앞의 표현식에 따라 결과값을 반환합니다. 참이면 반환값 1을 반환하고 거짓이면 반환값 2를 반환합니다. 삼항 연사자는 짧은 if/eslse 문 대신 사용할 수 있습니다. 이는 곧 코드를 간결하게 만들어 줍니다. 8. 문자열 연산자(string operator) PHP에서 문자열 연산자를 사용하여 문자열을 연결할 수 있습니다. 이 연산자는 얼핏 보기에는 연산자가 아닌 것처럼 보이지만 양쪽에 위치한 두 문자열을 연결하는 역할을 합니다. 9. 배열 합집합 연산자(array union operator) 배열 합집합 ..

PHP는 다양한 연산을 위해 많은 종류의 연산자를 제공하고 있습니다. 연산자(operator)의 종류는 다음과 같습니다. 1. 산술 연산자(arithmetic operator) 산술 연산자는 사칙 연산을 다루는 가장 기본적이면서도 많이 사용하는 연산자입니다. 산술 연산자는 모두 두개의 피연산자를 가지는 이항 연산자로 결합 방향은 왼쪽에서 오른쪽입니다. 산술 연산자 설명 + 왼쪽의 피연산자에 오른쪽 피연산자를 더합니다. - 왼쪽의 피연산자에 오른쪽 피연산자를 뺍니다. * 왼쪽의 피연산자에 오른쪽 피연산자를 곱합니다. / 왼쪽의 피연산자에 오른쪽 피연산자를 나눕니다. % 왼쪽의 피연산자에 오른쪽의 피연산자를 나눈 후 그 나머지를 반환합니다. ** 왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 제곱합니다. PH..

상수(constant) 상수란 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미합니다. 하지만 상수가 변수와 다른 점은 한 번 선언되면 스크립트가 실행되는 동안 그 데이터를 변경하거나 해제(undefined)할 수 없다는 점입니다. PHP에서는 define() 함수를 사용하여 상수를 선언할 수 있습니다. define(상수이름,상숫값,대소문자구분여부) define() 함수는 첫 번째 인수로 상수의 이름을 전달받고 두 번째 인수로 그 값을 전달받습니다. 그리고 세 번째 인수는 상수의 이름이 대소문자를 구분하는가를 설정할 수 있습니다. 기본값은 false로 대소문자를 구분합니다. 다음은 예시입니다. 위와 같은 경우는 대소문자를 구분합니다. echo Hello;가 아닌 echo hello; 실행 시..

변수(variable)는 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간입니다. 즉 변수란 데이터를 저장할 수 있는 메모리 공간이며 저장된 값은 변경될 수 있습니다. PHP에서는 달러($) 기호를 사용하여 변수를 선언합니다. $변수이름 = 초기값; PHP는 C언어를 기반으로 만들어졌지만 변수선언에서 차이점을 보입니니다. 바로 변수의 선언에 타입을 명시하지 않습니다. PHP의 변수 타입은 변수에 대입하는 값에 따라 자동으로 결정됩니다. 변수 이름 생성 규칙은 다음을 따릅니다. 1. 영문 대소문자, 숫자, 언더스코어(_)로만 구성됩니다. 2. 숫자로 시작할 수 없습니다. 3. 공백을 포함할 수 없습니다. 4. PHP에서 미리 정의한 $this는 사용할 수 없습니다. 5. 대소문자를 구분합..