[PHP] 기본 문법 정리 (1)
by 뚜부니0. 주석
문법에 대한 기본적인 정리를 하기 전 주석에 대해 정리하겠습니다.
주석이란 코드상에서 해석되지 않고 무시되는 코드인데요, PHP에서 주석의 종류는 다음과 같습니다.
1. 한 줄 C언어 스타일 : //주석문
2. 여러 줄 C언어 스타일 : /*주석문*/
3. 한 줄 쉘 스타일 : #주석문
1. 숫자와 문자
1.1. 숫자
숫자에 대해 화면에 출력하는 방법은 다음과 같이 간단합니다.
<?php
echo 1;
?>
실행 결과를 화면을 통해 확인하면 다음과 같습니다.
연산을 하는 방법 또한 간단합니다. 코드는 순서대로 덧셈, 뺄셈, 곱셈, 나눗셈의 연산자 사용 방법입니다.
<?php
echo 2+2; // 덧셈
echo 2-2; // 뺄셈
echo 2*2; // 곱셈
echo 2/2; // 나눗셈
?>
var_dump를 사용하면 형식에 대해 확인할 수 있습니다.
<?php
var_dump(6);
var_dump(6.5);
?>
위와 같은 형식으로 입력하고 실행시켜보면 6이라는 숫자는 int 형, 6.5라는 숫자는 float 형이라는 것을 알 수 있습니다.
1.2. 문자
문자에 대해 표현할 때는 " " (큰따옴표)나 ' ' (작은따옴표)로 묶어줘야 합니다.
<?php
echo "Hello World";
?>
실행 결과를 화면을 통해 확인하면 다음과 같습니다.
이번에는 1234와 "1234"라고 입력했을 때, 각 데이터의 형식에 대해 비교해보겠습니다.
<?php
echo var_dump(1234);
echo var_dump("1234");
?>
해당 코드를 실행시켜보면 다음과 같은 결과를 얻을 수 있는데,
""(큰따옴표) 유무에 따라 데이터의 형식이 다르게 출력되는 것을 확인할 수 있습니다.
문자와 문자를 결합하기 위해서는 . (마침표)를 사용해야 합니다.
다음과 같은 형태로 두 문자 사이에 공백까지 포함하여 더해주는 코드를 실행시켜봅시다.
<?php
echo "hello" . " " . "world";
?>
그러면 다음과 같은 결과를 얻을 수 있습니다. 마침표를 사용한다니 특이하네요😲😲
문자 안에서 인용구를 쓰는 방법은 두 가지가 있습니다.
첫 번째는 따옴표를 다르게 사용하는 것이고, 두 번째는 \ (역슬래시)를 사용하는 것입니다.
역슬래시 뒤에 있는 문자는 escaping이라고 해서 문자 그 자체를 인식하게 됩니다.
<?php
echo '그는 "안녕하세요" 라고 말했다.';
echo "그는 \"안녕하세요\" 라고 말했다."
?>
위와 같은 형태로 코드를 실행한 결과, 두 코드 모두 정상적으로 인용구를 만들어주는 것을 확인할 수 있습니다.
2. 변수와 상수
2.1 변수
변수는 문자나 숫자 같은 값을 담는 공간이며, 여기에 담긴 값은 다른 값으로 바꿀 수 있습니다.
변수를 선언하기 위해서는 $(달러 기호)를 사용합니다.
$변수 이름 = 초깃값;
다음은 변수에 정수 값 10을 대입하고 화면에 출력하는 코드입니다.
<?php
$var = 10;
echo $var;
?>
해당 코드를 실행시켜보면 다음과 같은 화면을 볼 수 있습니다.
변수는 정수 값뿐만 아니라 실수 값, 문자열도 대입할 수 있습니다. 코드는 다음과 같은 형태로 작성하면 됩니다.
$var = 10; // 정수값을 대입함
$var = 3.14; // 실수값을 대입함
$var = "PHP"; // 문자열을 대입함
작성한 변수를 문자열 내에서 사용하면, PHP는 해당 변수에 저장된 값으로 자동 변환해줍니다.
그러나 변수의 이름 뒤에 다른 문자가 오게 되면 해당 변수를 정확하게 인식하지 못하기 때문에
{} (중괄호)로 변수 이름을 감싸서 어디까지가 변수 명인지 확실하게 명시해야 합니다.
<?php
$var = 10;
echo "변수 \$var에 저장된 값은 $var 입니다. </br>";
echo "변수 \$var에 저장된 값은 $var입니다. </br>";
echo "변수 \$var에 저장된 값은 {$var}입니다.";
?>
코드를 실행시켜보면 다음과 같은 결과를 얻을 수 있습니다. 참고로 </br>은 줄 바꿈입니다.
2.1.1 변수명 규칙
- 변수의 이름은 영문 대소문자, 숫자, 언더스코어(_)로만 구성됩니다.
- 변수의 이름은 숫자와의 구분을 빠르게 하기 위해 숫자로는 시작할 수 없습니다.
- 변수의 이름에는 공백이 포함될 수 없습니다.
- 변수의 이름으로 PHP에서 미리 정의한 $this는 사용할 수 없습니다.
- 변수의 이름은 대소문자를 구분합니다.
2.1.2. 기본 타입
타입 | 설명 |
boolean (불리언) | true(참)과 false(거짓)으로 표현함. 새보문자를 구분하지 않음. |
integer (정수) | 부호를 가지는 소수부가 없는 수. 표현 범위는 OS에 따라 달라지며, 64비트 운영체제 기준 -2^63 ~ (2^63 - 1) |
float (실수) | 소수부나 지수부를 가지는 수. 정수보다 더 넒은 표현 범위를 가짐. 표현 범위는 OS에 따라 달라지지만 대략 ~ 1.8e3-7 미리 정의된 상수인 INF는 무한 이라는 의미이며, 실수의 최대 범위라고 보면 됨. |
string (문자열) | 일련의 연속된 문자(character)들의 집합. 큰따옴표("")나 작은따옴표('')로 감싸서 표현. |
array (배열) | 한 쌍의 키(key)와 값(value)으로 이루어진 맵(map)으로 구성되는 순서가 있는 집합. |
object (객체) | 클래스의 인스턴스(instance)를 저장하기 위한 타입. 프로퍼티(properties)와 메소드(methods)를 포함할 수 있음. |
resource (리소스) | PHP 외부에 존재하는 외부 자원. 데이터베이스 함수 등에서 데이터베이스 연결 등을 반환할 때 사용. |
NULL | 오직 한 가지 값 (NULL 상수)만을 가질 수 있는 특별한 타입. NULL 타입의 변수란 아직 어떠한 값도 대입되지 않은 변수. |
2.1.3. 변수명 초기화
PHP에서는 반드시 변수의 선언과 동시에 그 값을 초기화할 필요가 없습니다.
초기화되지 않은 변수는 해당 변수가 참조되거나 사용되는 위치에 따라 다음과 같은 기본값으로 자동 초기화됩니다.
타입 | 기본값 |
boolean (불리언) | FALSE |
integer (정수) | 0 |
float (실수) | 0.0 |
string (문자열) | 빈 문자열 |
array (배열) | 빈 배열 |
2.1.4. 변수 데이터형 검사 및 변경
PHP에서 변수에 담긴 데이터형을 검사할 때는 gettype과 settype을 사용합니다.
<?php
$var = 10;
echo gettype($var);
settype($var, 'double');
echo '<br />'; // 줄바꿈
echo gettype($var);
?>
실제로 코드를 수행한 결과는 다음과 같습니다.
2.1.5. 가변 변수
가변 변수는 변수의 이름을 변수로 변경할 수 있는 기능입니다. 코드를 보는 것이 이해가 더 빠를 것 같네요!
<?php
$var = 'subject';
$$var = 'PHP tutorial';
echo $var;
echo '<br />'; // 줄바꿈
echo $subject;
?>
실제로 코드를 수행한 결과는 다음과 같습니다.
2.2. 상수
상수(constant)는 변하지 않는 값입니다. 그렇기 때문에 어떠한 상황에서도 절대로 변할 수 없습니다.
2.2.1. define() 함수
상수는 define() 함수를 사용하여 선언할 수 있습니다.
define(상수 이름, 상숫값, 대소문자 구분 여부)
처음에 지정한 상수의 값을 변경하려고 하면 어떻게 되는지 한 번 확인해봅시다.
코드를 아래와 같이 작성한 후 실행시켜봅니다.
<?php
define("TITLE", "PHP Tutorial");
echo TITLE;
define("TITLE", "JAVA Tutorial");
echo TITLE;
?>
화면에는 다음과 같이 처음 설정한 상수 값에 대해서만 출력하고, 변경사항에 대해서는 실행하지 않았습니다.
PHP Storm의 실행 로그를 확인해보면 이미 값을 설정했다고 뜨는 것을 확인할 수 있습니다.
2.2.2. 마법 상수 (magic constants)
PHP에는 어떤 스크립트에서도 사용할 수 있는 미리 정의된 다양한 상수인 마법 상수를 제공합니다.
마법 상수는 대소문자를 구분하지 않습니다.
상수 이름 | 설명 |
__LINE__ | 파일의 현재 줄 번호를 반환함. |
__FILE__ | 파일의 전체 경로와 이름을 반환함. include 내부에서 사용할 경우 include된 파일명을 반환함. |
__DIR__ | 파일의 디렉터리를 반환함. 포함한 파일 안에서 사용할 경우 포함된 파일의 디렉터리를 반환함. dirname(__FILE__)과 같은 결과를 반환함. |
__FUNCTION__ | 함수의 이름을 반환함. |
__CLASS__ | 클래스의 이름을 반환함. 클래스 이름은 대소문자를 구분함. |
__TRAIT__ | 트레이트(trait)의 이름을 반환함. 트레이트의 이름은 트레이트를 선언한 네임스페이스를 포함함. * 트레이트는 여러 개의 클래스를 상속받을 수 있는 형태 (정확히는 가져와서 사용하는 형태) |
__METHOD__ | 클래스의 메소드 이름을 반환함. |
__NAMESPACE__ | 현재 네임스페이스의 이름을 반환함. |
🔗Reference
'PHP' 카테고리의 다른 글
[PHP] 기본 문법 정리 (4) (feat. 함수) (0) | 2021.07.17 |
---|---|
[PHP] 기본 문법 정리 (2) (feat. 연산자, 제어문) (0) | 2021.07.13 |
[PHP] 첫 번째 PHP 애플리케이션 생성하기 (0) | 2021.07.12 |
[PHP] PHP Storm 설정 (0) | 2021.07.12 |
[PHP] Bitnami로 PHP 환경 세팅하기 (0) | 2021.07.12 |
블로그의 정보
개발하는 두부
뚜부니