본문 바로가기
프로그래밍/PHP

01 PHP란?

by 윤지(●'◡'●) 2021. 7. 29.
반응형


PHP(PHP: Hypertext Preprocessor)란?

PHP는 서버 쪽에서 실행되는 서버 사이드 스크립트 언어로, 아래와 같은 특징을 가지고 있다.

- 데이터베이스와 연동을 편하게 할 수 있음
- 거의 모든 운영체제에서 개발이 가능
- 속도가 매우 빠름
- 파일 업로드, 메일전송.. 등 기능을 자체적으로 지원

 

 

 

PHP의 기본문법

 

1. HTML 문서내에 <?php 로 시작하고 ?> 끝난다.

<?php
	
?>

 

2. PHP문법을 사용하면 확장명을 .php로 저장한다.

 

3. C언어, Java처럼 PHP 명령문의 끝은 세미콜론(;)으로 끝난다.


4.  주석문은 /* 로 시작해서 */ 끝나고, 한 줄 주석은 // 를 사용한다.

<?php
  /*
      여러줄
      주석
  */
  //한줄 주석
?>

 

5. HTML에 문자열을 출력하기 위해 echo() 함수를 사용

<?php
	echo "echo() 함수는 HTML 스트림에 문자열을 출력해준다.";
?>

 

 

PHP의 변수

 

변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간이다.

즉, 변수란 데이터(data)를 저장할 수 있는 메모리 공간이며, 저장된 값은 변경될 수 있다.

 

[문법]

<?php
	$변수명;        // 변수 선언
	$변수명 = 값;   // 변수 초기화
?>

변수는 위와 같이 변수명 앞에 $를 붙혀 선언한다.

 

[예시]

<?php
    $userid = "apple";
    $name = "김사과";
    $age = 20;
    $job = "학생";
?>
<body>
    <h2>변수 - 1</h2>
    <?php
        echo("<h3>".$userid."님 안녕하세요!</h3>");
    ?>
    <p>이름 : <?=$name?></p>
    <?php
        echo "<p>{$name}님의 나이는 {$age}살이며, 직업은 {$job}입니다.</p>"
    ?>
</body>

 

PHP 변수의 종류

 

종류 설명
지역변수 - 함수 내부에서 선언된 변수이다.
- 내부에서 선언된 변수는 함수가 종료되면 메모리에서 삭제된다
전역변수 - 함수 밖에서 선언된 변수이다.
- 함수 밖에서만 사용할 수 있으며, 함수 내부에서 사용하려면 global 키워드를
함께 사용해야한다.
정적변수 - 함수 내부에서 static 키워드로 선언된 변수이다.
- 정적변수는 함수 호출이 종료되어도 메모리 상에서 삭제되지 않는다.
- (공용변수 사용)
슈퍼글로벌변수 - 미리 정의된 전역변수이다.
- 특별한 선언없이 스크립트 내의 어디에서도 바로 사용할 수 있다.

 

[지역변수와 전역변수 예시]

<?php
    $num = 10; //전역변수

    function func1(){
        $str = "PHP"; //지역변수
        echo "<p>함수 안에서 호출한 지역변수 str의 값: {$str}</p>";
        global $num; //전역변수는 함수 내부에서 사용하려면 global 키워드를 함께 사용해야한다.
        echo "<p>함수 안에서 호출한 전역변수 num의 값 : {$num}</p>";
    }
?>
<body>
    <h2>변수 - 2</h2>
    <?php
        func1();
        echo "<p>함수 밖에서 호출한 전역변수 num의 값 : {$num}</p>";
    ?>
</body>

 

[정적변수 예시]

<?php
    function counter(){
        static $cnt = 1;
        echo "<p>변수 cnt 값 : {$cnt}</p>";
        $cnt++;
    }
?>
<body>
    <h2>변수 - 3</h2>
<?php
    counter();
    counter();
    counter();
    counter();
    counter();
?>
</body>

함수 내부에서 선언된 정적 변수는 함수의 호출이 종료되더라도 메모리상에서 사라지지 않기때문에

$cnt는 함수의 호출이 종료된 후에도 계속해서 그 값을 유지하고 있는 것을 확인할 수 있다.

 

 

슈퍼 글로벌 변수는 PHP의 데이터 전송방식과 함께 알아보자 :)

 

데이터 전송방식(method)

 

전송방식 설명
GET     - URL에 변수(데이터)를 포함해서 전송된다.
    - URL에 변수(데이터)가 노출되어 보안에 취약하다.
    - 전송하는 길이에 제한이 있다.
    - 속도가 빠르다
    - 캐싱할 수 있음(히스토리가 남는것)
POST     - URL에 변수(데이터)를 노출하지 않고 전송된다.
    - URL에 데이터가 노출되지 않아 기본 보안은 지켜진다.
    - 전송하는 길이에 제한이 없다
    - 캐싱할 수 없다
    - GET 방식보다 속도가 느리다.

 

[GET 방식 예시]

 

- 5-Variable4.php

<body>
    <h2>변수 - 4</h2>
    <form action="5-Variable4P.php" method="get">
    //action 속성값에는 form 요소를 처리할 서버의 PHP 스크립트 파일 주소를 명시한다.
        <p>이름 : <input type="search" name="name"><input type="submit" value="전송"></p>
        //submit버튼을 누르면 입력된 이름의 데이터가 전송된다.
    </form>
</body>

 

- 5-Variable4P.php

<?php
    $name = $_GET["name"];
    //form 요소에 포함된 input 요소의 name 속성값으로 데이터를 받아올 수 있다.
?>
<body>
    <h2>GET</h2>
    <p>나의 이름은 '<?=$name?>' 입니다.</p>
</body>
</html>

 

GET방식으로 전달한 경우 URL에 입력된 정보가 노출된 것을 확인할 수 있다.

 

 

[POST 방식 예시]

 

<body>
    <h2>변수 - 4</h2>
    <form action="5-Variable4P.php" method="post">
        <p>이름 : <input type="search" name="name"><input type="submit" value="전송"></p>
    </form>
</body>
<?php
    $name = $_POST["name"];
?>
<body>
    <h2>POST</h2>
    <p>나의 이름은 '<?=$name?>' 입니다.</p>
</body>
</html>

POST방식으로 전달한 경우 URL에 입력된 정보가 노출되지 않은 것을 확인할 수 있다.

 


열심히 공부하고 있지만, 오류 사항이 존재 할 수 있습니다.

수정 사항이 존재 할 경우 알려주시면 감사하겠습니다 <(__)>

 

 

 

 

 

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

05 세션(session)  (0) 2021.08.04
04 쿠키(Cookie)  (0) 2021.08.03
03 문자열함수  (0) 2021.08.02
02 회원가입 페이지 만들기  (0) 2021.07.29

댓글