Front-End/PHP

[PHP] PHP 기본 문법, 특징, 변수

챌링킴 2021. 7. 3. 17:50
반응형

1) PHP 기본 문법, echo( ) 함수

 

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

<?php

?>

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

    <?php
        echo("<p>안녕하세요!</p>");
        echo "<p>php는 영역을 자유롭게 사용할 수 있다.</p>";
    ?>

 

 

2) PHP 특징

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

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

- 주석문은 /*   */ , 한줄 주석은 //를 사용한다.

 

 

3) PHP 변수 선언과 초기화

//변수 선언
$변수명;

//변수 초기화
$변수명 = 값;

 

<?php
    $userid = "apple";
    $name = "김사과";
    $age = 20;
    $job = "학생";
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>변수-1</title>
</head>
<body>
    <h2>변수-1</h2>
    <?php
        echo("<h3>".$userid."님 안녕하세요!</h3>");
    ?>

    <p>이름 : <?=$name?></p>
    <?php
        echo "<p>{$name}님의 나이는 {$age}살이며, 직업은 ${job}입니다.</p>";
    ?>
    
</body>
</html>

▼실행결과▼

 

 

4) PHP 변수 종류(지역변수, 전역변수, 정적변수, 슈퍼글로벌변수)

 

1. 지역변수

- 함수 내부에서 선언된 변수를 말한다.

- 내부에서 선언된 변수는 함수가 종료되면 메모리에서 삭제된다.

{
	$num = 10; //지역변수
}

echo($num); //함수 외부에서는 에러 발생

 

2. 전역변수

- 함수 외부에서 선언된 변수를 말한다.

- 함수 밖에서만 사용할 수 있다.

- 함수 내부에서 사용하려면 global이라는 키워드를 함께 사용하면 된다.

$num = 10;

{
	global $num;
	echo($num);
}

 

지역변수, 전역변수 비교 예제

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

    function func1(){
        $str = "PHP";
        echo "<p>함수 안에서 호출한 지역변수 str의 값 : {$str}</p>";
        
        global $num; //global을 써줘야 전역변수 사용 가능
        echo "<p>함수 안에서 호출한 전역변수 num의 값 : {$num}</p>";
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>변수-2</title>
</head>
<body>
    <h2>변수-2</h2>
    <?php
        func1();
        echo "<p>함수 밖에서 호출한 전역변수 num의 값 : {$num}</p>";
    ?>
</body>
</html>

▼실행결과▼

 

3. 정적변수

- 함수 내부에서 static 키워드로 선언된 변수를 말한다.

- 함수 호출이 종료되어도 메모리상에서 삭제되지 않는다.

- 따라서 공용변수로 사용한다.

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h2>변수 - 3</h2>

    <?php
        counter();
        counter();
        counter();
    ?>
</body>
</html>

▼정적변수 실행결과▼


<?php
    function counter(){
        //static $cnt = 1; => 정적변수를 주석처리한 후
        $cnt = 1; //  지역변수로 선언했을 때
        echo "<p>변수 cnt값 : {$cnt}</p>";
        $cnt++;
    }
?>

▼지역변수 실행결과▼

 

차이점 : 지역변수는 함수가 종료될 때마다 메모리에서 삭제되지만,

정적변수는 함수 호출이 종료되어도 메모리상에서 삭제되지 않는다.

 

4. 슈퍼글로벌변수

- 미리 정의된 전역변수를 말한다.

- 특별한 선언없이 스크립트 내의 어디에서도 바로 사용할 수 있다.

- $_GET, $_POST, $_COOKIE, $_SESSION, ... 등이 있다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>변수 - 4</title>
</head>
<body>
    <h2> 변수 - 4 </h2>
    <form action="5-varible4P.php" method="get">
        <p><input type="search" name="q"> <input type="submit" value="검색"></p>
    </form>
</body>
</html>

▼form action으로 보낸 5-varible4P.php 파일 코드▼

-- $_GET 슈퍼글로벌변수 사용 --

<?php
    $query = $_GET["q"];
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h2>검색</h2>
    <p>검색어로 입력한 단어는 '<?=$query?>' 입니다.</p>
</body>
</html>

▼실행결과▼

GET방식은 URL에 데이터가 날아간다.

반응형