Language/PHP

PHP 개요

원2 2024. 4. 21. 21:12
728x90
반응형

서버 사이드에서 자주 사용하는 언어

 

브라우저의 요청 HTML 문서에 서버 사이드 스크립트 언어의 코드가 포함되어 있으면, 서버는 이 부분을 처리하고 결과를 브라우저로 반환.

 

동적 웹 페이지:

서버에 미리 저장된 파일이 아닌 서버에 있는 데이터들을 서버 사이드 스크립트 언어로 가공하여 생성되는 페이지

 

PHP 의 특징

1. 대부분의 웹 서버에서 지원

1. 작성해야하는 코드의 양이 적다(?)

1. 텍스트 처리에 특화 - HTML 문서 처리에 적합(?)

 

PHP 의 단점

1. 간단한 사이트 제작을 위한 언어로써 복잡한 사이트에 효율이 떨어진다.

1. 보안에 안전하지 않다.

 

버전별 주요 특징

5 -> 객체 지향 프로그래밍의 개념이 많이 추가

5.3 -> 네임스페이스가 추가

5.4 -> 단일 상속의 한계를 없앤 트레이트 개념 추가

7 -> 2배 이상의 속도 향상 및 익명 클래스 추가

 

공식 사이트

https://www.php.net/

 

PHP: Hypertext Preprocessor

PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.

www.php.net

 

 

웹 프로그래밍 언어

1. PHP (리눅스/윈도우, 아파치... , 오픈소스, 빠름, 이식성 : 보통)

2. JSP (리눅스/윈도우, 톰캣 제우스... , 오라클, 느림, 좋음)

3. ASP.NET (윈도우, I1S, 마소, 보통, 나쁨)

 

PHP 동작원리

1. 웹페이지 요청 > 스크립트 실행요청 > DB 작업 > 작업 결과 반환 > 페이지 렌더링

 

PHP 코드 영역

1. 권장스타일 : <?php ... ?>

2. HTML 자바스크립트 스타일 : <script language = "php"> ... </script>

3. SGML : <? ... ?>

4. ASP : <% ... %>

 

PHP 문법

// 기본
<?php 
	echo "php에 어서오십쇼";
?>

// 자동세미콜론 장착기능
<?php 
	echo "php에 어서오십쇼"
?>


// 종료 태그 생략 (가동석 떨어지고 예상치 못한 이슈 발생)
<?php 
	echo "php에 어서오십쇼";
    
// echo, Echo, ECHO 다 같은 동작, print() 와 같은 기능

 

 

변수 선언

$변수명 = 초기값;

 

자바나 C 처럼 타입 명시 하지 않음 -> 대입 값에 따라 자동 타입 결정

 

변수 생성 규칙

1. 영문 대소문자, 숫자, 언더스코어

2. 숫자로 시작 X

3. 공백 X

4. $this 사용 불가

5. 대소문자 구분

$var = 111;

echo "{$var}";

처럼 중괄호 {} 로 변수를 감싸 명시해야함 -> 뒤에 다른 문자열이 오게 되면 정확히 인식 X

 

변수의 초기화

PHP에서는 반드시 변수으 선언과 동시에 값을 초기화할 필요가 없음 -> 자동초기화

// 선언되지 않은 변수의 기본값

var_dump($var);                              // NULL

// 초기화되지 않은 불리언(boolean) 타입 변수의 기본값

echo $bool ? "true<br>" : "false<br>";       // false

// 초기화되지 않은 정수(integer) 타입 변수의 기본값

$int += 10; var_dump($int);                  // 0 + 10 = 10

// 초기화되지 않은 실수(float) 타입 변수의 기본값

$flt += 3.14; var_dump($flt);                // 0.0 + 3.14 = 3.14

// 초기화되지 않은 문자열(string) 타입 변수의 기본값

$str .= "프로그래밍"; var_dump($str);        // ""."프로그래밍" = "프로그래밍"

// 초기화되지 않은 배열(array) 타입 변수의 기본값

$arr[2] = "2번째 배열 요소"; var_dump($arr); // array(1) { [2]=> string(21) "2번째 배열 요소" }

 

지역변수

함수 내부에서만 사용가능

 

전역변수

함수 밖에서 선언된 변수 global 키워드 사용

$var = 10;       // 전역 변수 선언
function varFunc() {
    echo "함수 내부에서 호출한 전역 변수 var의 값은 {$var}입니다.<br>"; // 값이 안뜸
    global $var; // 전역 변수를 명시
    echo "함수 내부에서 호출한 전역 변수 var의 값은 {$var}입니다.<br>";
}
varFunc();
echo "함수 밖에서 호출한 전역 변수 var의 값은 {$var}입니다."; // 에러

 

PHP는 모든 전역 변수를 $GLOBALS 배열에 저장, 인덱스로 변수의 이름을 사용하여 접근

$var = 111;

function varFun() {
	echo "변수 사용해 봄 {$GLOBALS['var']}";
}

 

슈퍼 글로벌

1. $GLOBALS

2. $_SERVER

3. $_GET

4. $_POST

5. $_FILES

6. $_COOKIE

7. $_SESSION

8. $_REQUEST

9. $_ENV

 

 

정적변수

static 키워드로 선언한 변수 -> 함수 내부에서 선언된 변수는 호출이 종료되도 메모리에서 사리지지 않음, 함수 내부에서 접근가능

function cnt() {
	static $cnt = 0;
    
    echo "호출 해볼까요? cnt 는? {$cnt} 입니다.";
    
    $cnt++;
}

cnt();
cnt();
cnt();

// 호출 해볼까요? cnt 는? 0 입니다.
// 호출 해볼까요? cnt 는? 1 입니다.
// 호출 해볼까요? cnt 는? 2 입니다.

 

 

상수

변수와 같지만 한번 선언되면, 스크립트가 실행되는 동안 그 데이터를 변경하거나 해제 불가능

 

define() 함수

define(상수이름, 상숫값, 대소문자구분여부)
//대소문자 구분 여부는 boolean, 디폴트는 false

define("PHP", "내가 바로 PHP");
echo PHP; // 내가 바로 PHP
echo php; // php

define("PHP", "내가 바로 PHP", true);
echo PHP; // 내가 바로 PHP
echo Php; // 내가 바로 PHP

 

마법 상수

 

728x90
반응형