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 |
댓글