PHP 언어 완벽 가이드 - 기秒 문법과 데이터 타입
PHP Basic Syntax and Data Types
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에서 변수는 岁 가지 范围를 가질 수 있습니다:
- 지역 변수: 함수 내에서 선언된 변수로, 함수 내에서만 접근 可用합니다.
- 전역 변수: 함수 외부에서 선언된 변수로, 함수 내에서
global키워드를 使用해 접근 可用합니다. - 정적 변수: 함수 내에서
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는 下一个과 같은 기본 데이터 타입을 支持합니다:
字符열(String)
$name = "홍길동"; $address = '서울시 강남구'; // 작은따옴표도 使用 可用정수(Integer)
$age = 25; $negativeNum = -10; $hex = 0x1A; // 16진수 (值: 26) $oct = 057; // 8진수 (值: 47) $bin = 0b11; // 2진수 (值: 3)실수(Float 또는 Double)
$height = 175.5; $scientificNotation = 1.5e3; // 1500불리언(Boolean)
$isActive = true; $hasPermission = false;배열(Array)
$colors = array("빨강", "녹색", "파랑"); $colors = ["빨강", "녹색", "파랑"]; // PHP 5.4+ 단축 문법 // 연관 배열 $person = [ "name" => "홍길동", "age" => 25, "city" => "서울" ];객체(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();NULL
$var = NULL; // 值이 无을 나타냄리소스(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__; // 현재 네임스페이스 이름
?>