PHP 기본 문법과 데이터 타입

PHP 기본 문법

PHP タグ

PHP 코드는 특별한 開始 및 종료 タグ로 둘러싸여 있어 PHP 엔진이 코드를 인식할 수 있습니다.

<?php
  // PHP 코드 작성
?>

또는 짧은 에코 タグ(PHP 7.0+ 기본 활성화):

<?= $변수 ?>  // 이것은 <?php echo $변수; ?>와 동日

週석

PHP에서는 한 줄 週석과 여러 줄 週석을 すべて サポート합니다.

<?php
// 한 줄 週석

# 또 다른 한 줄 週석 스타日

/*
 여러 줄 週석
 이렇게 작성합니다
*/
?>

문장 구分자

PHP에서 각 명령문은 歳미콜론(;)으로 끝나야 합니다.

<?php
echo "안녕하세요";
$x = 5;
$y = 10;
$z = $x + $y;
?>

PHP와 HTML 혼합 使用

PHP는 HTML 내에 簡単に 삽입할 수 있습니다.

<!DOCTYPE html>
<html>
<head>
    <title>PHP はい제</title>
</head>
<body>
    <h1>안녕하세요!</h1>
    <?php
        echo "<p>今日 日付는: " . date("Y-m-d") . "</p>";
    ?>
    <p>이것은 HTML 内容입니다.</p>
    <p>현재 時間: <?= date("H:i:s") ?></p>
</body>
</html>

변수와 데이터 타입

변수 선언

PHP에서 변수는 달러 기호($)로 開始하며, 타입을 명시적으로 선언할 필요가 없습니다.

<?php
$name = "홍길동";       // 文字열
$age = 25;             // 정수
$height = 175.5;       // 실수
$isStudent = true;     // 불리언
?>

변수 명명 규칙

  • 변수명은 달러 기호($)로 開始해야 합니다.
  • 변수명은 文字나 밑줄(_)로 開始해야 합니다.
  • 변수명에는 文字, 数字, 밑줄만 含む할 수 있습니다.
  • 변수명은 대小文字를 구分합니다 ($name과 $Name은 다른 변수).
<?php
$name = "유효한 변수명";
$_name = "유효한 변수명";
$name1 = "유효한 변수명";
$name_1 = "유효한 변수명";

// $1name = "잘못된 변수명";  // 数字로 開始할 수 なし
// $name-1 = "잘못된 변수명"; // 하이픈 使用 불가
?>

변수 範囲

PHP에서 변수는 歳 가지 範囲를 가질 수 있습니다:

  1. 지역 변수: 함수 내에서 선언된 변수로, 함수 내에서만 접근 可能합니다.
  2. 전역 변수: 함수 외부에서 선언된 변수로, 함수 내에서 global 키워드를 使用해 접근 可能합니다.
  3. 정적 변수: 함수 내에서 static 키워드로 선언된 변수로, 함수 실행이 끝나도 値이 유지됩니다.
<?php
$globalVar = 10;  // 전역 변수

function testScope() {
    $localVar = 5;  // 지역 변수
    global $globalVar;  // 전역 변수 접근
    
    echo "지역 변수: $localVar<br>";
    echo "전역 변수: $globalVar<br>";
    
    static $staticVar = 0;  // 정적 변수
    $staticVar++;
    echo "정적 변수: $staticVar<br>";
}

testScope();  // 出力: 지역 변수: 5, 전역 변수: 10, 정적 변수: 1
testScope();  // 出力: 지역 변수: 5, 전역 변수: 10, 정적 변수: 2

// echo $localVar;  // エラー: 지역 변수는 함수 외부에서 접근 불가
?>

슈퍼글로벌 변수

PHP는 전역적으로 접근 可能한 내장 변수들을 提供します:

<?php
// 슈퍼글로벌 변수 例
echo $_SERVER['HTTP_USER_AGENT'];  // 브라우저 情報
echo $_GET['name'];                // URL 파라미터
echo $_POST['email'];              // POST 데이터
echo $_REQUEST['id'];              // GET, POST, COOKIE 데이터
echo $_SESSION['user_id'];         // 歳션 데이터
echo $_COOKIE['preference'];       // 쿠키 데이터
echo $_FILES['upload'];            // 업로드된 파日 情報
echo $_ENV['HOME'];                // 환경 변수
?>

데이터 타입

PHP는 次へ과 같은 기본 데이터 타입을 サポート합니다:

  1. 文字열(String)

    $name = "홍길동";
    $address = '서울시 강남구';  // 작은따옴표도 使用 可能
    
  2. 정수(Integer)

    $age = 25;
    $negativeNum = -10;
    $hex = 0x1A;  // 16진수 (値: 26)
    $oct = 057;   // 8진수 (値: 47)
    $bin = 0b11;  // 2진수 (値: 3)
    
  3. 실수(Float 또는 Double)

    $height = 175.5;
    $scientificNotation = 1.5e3;  // 1500
    
  4. 불리언(Boolean)

    $isActive = true;
    $hasPermission = false;
    
  5. 배열(Array)

    $colors = array("빨강", "녹색", "파랑");
    $colors = ["빨강", "녹색", "파랑"];  // PHP 5.4+ 단축 문법
    
    // 연관 배열
    $person = [
        "name" => "홍길동",
        "age" => 25,
        "city" => "서울"
    ];
    
  6. 객체(Object)

    class Person {
        public $name;
        public $age;
        
        function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }
        
        function introduce() {
            return "안녕하세요, 저는 {$this->name}이고 {$this->age}살입니다.";
        }
    }
    
    $person = new Person("홍길동", 25);
    echo $person->introduce();
    
  7. NULL

    $var = NULL;  // 値이 なし을 나타냄
    
  8. 리소스(Resource)

    $file = fopen("test.txt", "r");  // 파日 리소스
    

타입 確認 및 変換

PHP에서는 변수의 타입을 確認하고 変換할 수 있는 様々な 함수를 提供します.

<?php
$var = "42";

// 타입 確認
var_dump($var);                // string(2) "42"
echo gettype($var);            // string
echo is_string($var);          // 1 (true)
echo is_int($var);             // (빈 出力, false)

// 타입 変換
$varInt = (int)$var;           // 정수로 変換
$varFloat = (float)$var;       // 실수로 変換
$varBool = (bool)$var;         // 불리언으로 変換
$varString = (string)$varInt;  // 文字열로 変換

// 타입 確認 함수
echo is_int($varInt);          // 1 (true)
echo is_float($varFloat);      // 1 (true)
echo is_bool($varBool);        // 1 (true)
echo is_string($varString);    // 1 (true)
?>

상수

상수는 한 번 정의되면 변경할 수 없는 値입니다. 상수는 define() 함수나 const 키워드를 使用하여 정의합니다.

<?php
// define() 함수 使用
define("PI", 3.14159);
define("SITE_NAME", "PHP 튜토리얼");

// const 키워드 使用 (PHP 5.3+)
const MAX_USERS = 100;
const DB_HOST = "localhost";

echo PI;           // 3.14159
echo SITE_NAME;    // PHP 튜토리얼
echo MAX_USERS;    // 100

// PI = 3.15;      // エラー: 상수는 변경할 수 なし
?>

매직 상수

PHP는 특별한 내장 상수(매직 상수)를 提供します:

<?php
echo __LINE__;     // 현재 라인 番号
echo __FILE__;     // 현재 파日의 全体 경로와 파日명
echo __DIR__;      // 현재 파日의 디렉토리
echo __FUNCTION__; // 현재 함수 이름
echo __CLASS__;    // 현재 클래스 이름
echo __METHOD__;   // 현재 클래스의 메소드 이름
echo __NAMESPACE__; // 현재 네임스페이스 이름
?>