본문 바로가기

PHP

PHP 기초 - 변수/상수

반응형

tcpschool.com/php/php_basic_constants

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

해당 부분을 참고해서 블로그글을 정리하고 있다. 

<html>

<body>
echo "Hello world chicken";
    <?php
    echo "Hello world";
    ?>
</body>

</html>

 

php는 키워드 클래스 함수 사용자 함수이름의 대소문자를 구분하지 않는다. 

 

변수 정의하기 

php는 자바스크립트와 유사하게 변수를 선언할 때 타입을 따로 명시하지 않는다.

$를 붙여서 변수를 정의한다. 

변수의 타입을 조회할때는 var_dump를 사용해서 변수를 조회한다 

<?php

$num = 10;

echo $num;

?>

 

 

변수를 붙여서 사용할때 + 가 아닌 .을 붙여서 사용한다

<html>

<body>
    
    <?php
    echo "Hello world\n";
    $num = 10;

    echo $num."\n";

    var_dump($num);
    ?>
    


</body>

</html>

 

"" 안에서 변수를 사용하기 위해서는 {} 안에 변수를 넣어서 명시를 해주면 된다. 

(echo "$num")등 이름뒤에 아무런 문자도 나오지 않으면 크게 상관이 없다.

<html>

<body>
    
    <?php
    $num = 10;
    echo "변수 \$num 에 저장된 값은 {$num}입니다."
    ?>
    


</body>

</html>

 

php의 변수는 크게 세가지로 나뉘어져 있다

1. 지역 변수

함수 내부에서만 접근 가능하다 

<html>

<body>
    
    <?php
    
    function helloNum(){
    	$num = 10;
    }
    helloNum();
    echo $num  // 접근이 불가능하다 
    ?>
    


</body>

</html>

2. 전역 변수

전역변수는 php 에서 조금 특이했다. 전역변수를 함수 내부에서 사용해주려면 

global 변수이름;

$GLOBALS['변수']; 

방식으로 전역변수를 명시해줘야 전역변수가 사용이 가능하다. 

 

<html>

<body>
    
    <?php
    $num = 10;
    function helloNum(){
        echo "함수 내부에서 호출한 전역 변수 num의 값은 {$num}입니다 <br>";
        
        global $num;
        echo "함수 내부에서 호출한 전역 변수 num의 값은 {$num}입니다 <br>";
        echo "함수 내부에서 호출한 전역 변수 num의 값은 {$GLOBALS['num']}입니다.<br>";
    }
    helloNum();
    echo "함수 외부에서 호출한 전역 변수 num의 값은 {$num}입니다";
    ?>
    


</body>

</html>

 

 

3. 정적 변수 

함수가 종료되더라도 정적변수는 메모리상에서 사라지지 않는다.

지역변수와 같이 함수 내부에서만 접근이 가능하다 .

<html>

<body>
    
    <?php
    
    function helloNum(){
        static $num = 0;
        echo "함수 내부에서 호출한 static 변수 num의 값은 {$num} 입니다.<br>";
        $num++;
    }
    helloNum();
    helloNum();
    helloNum();
    helloNum();

    ?>
    


</body>

</html>

 

 

 

변수의 자료형

  • string 문자열 
  • integer 정수
  • float 실수 
  • boolean (false, 0, 0.0, "", "0", [], null 은 모두 false로 인식한다)
  • array 배열 
  • object 객체, 클래스의 인스턴스 저장
  • null 초기화 하지 않거나 삭제되거나 존재하지 앟는 변수를 참조할때 
  • resource  php에 존재하는 외부 자원, DB연결 반환등에 사용 

 

상수

데이터가 한번 선언되면 데이터를 변경하거나 해제할 수 없다. 

define(상수이름, 상수값, 대소문자구분)

<html>

<body>
    
    <?php
    define("chicken", "치킨은 맛있다.<br>");
    echo Chicken; //대소문자가구분이 활성화 되어있어 Chicken이 출력된다
    echo chicken;

    define("pork", "돼지고기는 맛있다.<br>", true); //대 소문자를 구분하지 않음 
    echo pork;
    echo Pork;
    ?>
    


</body>

</html>

 

 

 

 

 

마법상수

 

해당과 같이 PHP에서는 8개의 마법 상수를 제공한다 

 

상수이름 설명
__DIR__ 파일의 디렉터리를 반환
__FILE__ 파일의 전체 경로와 이름을 반환
__LINE__ 파일의 현재 줄번호 반환
__CLASS__ 클래스의 이름을 반환, 대소문자구분
__TRAIT__ 트레이트의 이름을 바환 (네임스페이스 포함)
__METHOD__ 클래스의 메소드 이름을 반환
__FUNCTION__ 함수의 이름을 반환
__NAMESPACE__ 현재 네임스페이스의 이름을 반환 

 

 

가변 변수

php는 변수의 이름까지 동적으로  변경이 가능하다  ($를  추가로 사용)

 

<html>

<body>
    
    <?php
        $name ="chicken";
        $chicken = "BBQ";
        $BBQ = "프라이드 치킨";

        echo $name;
        echo "<br>";
        echo $$name;
        echo "<br>";
        echo $$$name;

    ?>
    


</body>

</html>

반응형

'PHP' 카테고리의 다른 글

PHP + MYSQL 회원가입 / 로그인 구현하기  (24) 2020.10.09
php mysql 연동하기  (0) 2020.10.07
PHP 반복문/ 배열  (0) 2020.10.06
php.ini 파일 셋팅하기  (0) 2020.10.05
WAMP 설치하기 및 php 실행해보기  (3) 2020.10.05