본문 바로가기
Programming/php

[php]변수와 상수

by 막이 2017. 9. 15.

- 변수란 ? (變數, Variable) 변하는 숫자. 수학시간에 배우는 대입연산자의 역할 x=2 

                   숫자뿐만 아니라 모든 데이터형이 대입될  수 있다.


php에서는 변수를 정의할때 반드시 변수 앞에 $ 표시를 붙여준다.

php는 자료형이 느슨한 언어이다. (php is a loosely typed language)

java 나 c 등에서는 변수 앞에 데이터형을 선언해줘야하지만 

php 문법에서는 어떤 데이터형이든 들어와도 상관없다.


- php 변수 만들 때 유의사항

변수 첫 글자는 다른 프로그래밍 언어와 동일하게 숫자로 시작하면 안된다.

첫 문자는 반드시 알파벳으로 시작해야한다.



 #은 주석(comment)으로 코드에 부가적인 설명을 쓰거나 사용하지 않는 코드를 비활성화시키기 

위해서 사용한다. #뒤에 따라오는 내용은 해석되지 않는다. 

# 대신에 //를 사용할 수도 있다. 긴 구간을 주석으로 처리하고 싶다면 /* */를 사용한다.







- 상수란 ? 상수(常數, constant)는 변하지 않는 값이다.

1
1=2;

즉 정수 1은 2가 될 수 없기 때문에 상수이다. 필요에 따라서 사용자가 직접 상수를 정의 할 수도 있다


상수를 정의 할 때는 define를 사용한다. define의 첫번째 인자로 상수의 이름이 사용되고, 두번째 인자로 상수의 값이 사용된다. 상수에 저장된 값을 사용하기 위해서는 인용부호가 없이 상수의 이름을 적어주면 된다. 위의 예제는 PHP Tutorial를 출력 하지만 동시에 오류를 발생시킨다. 위의 코드는 한번 정의된 상수의 값은 불변이라는 원칙을 어기고 있기 때문에 PHP에서는 오류를 발생시킨 것이다. 상수는 한번 정의된 어떤 값이 변경되지 않음을 보증한다. 이러한 성질을 이용해서 설정 값과 같은 용도로 상수를 주로 사용한다.

상수는 대문자를 사용하는 것이 관습이다.


1
2
3
4
5
6
7
8
9
<html>
<body>
<?php
define('TITLE''PHP Tutorial');
echo TITLE;
define('TITLE''JAVA Tutorial');
?>
</body>
</html>
cs

상수는 변할수 없는 값이기 때문에, 이미 정의한 상수를 또 다시 정의한다면 error가발생된다. (already defined)
변경불가.






- 변수에 담긴 데이터형을 검사하고 변경하기


 gettype : gettype은 인자로 전달된 값의 데이터 형을 출력한다. var_dump와 비슷 하지만 var_dump는 데이터형에 대한 검사와 함께 출력까지 강제로 하기 때문에 활용도가 떨어진다. 


 settype : 첫번째 인자로 주어진 값을 두번째 인자에 해당하는 데이터 형으로 변경해준다. (ex: settype($a, double))



이와 비슷한 역할을 하는 API로는 아래와 같은 것이 있다.





- 가변변수 : variable variables. 가변변수는 변수의 이름을 변수로 변경 할 수 있는 기능이다.

위의 코드를 보면 변수 $title의 값이 subject이다. 그런데 5행에 나타나는 '$$title'에는 '$'가 두번 표시되어 있다. 이것은 문자열 'PHP tutorial'이 변수 $title의 값이 아니라 변수 $subject의 값이라는 의미다. 변수의 이름을 동적으로 만들 수 있다는 점은 PHP가 가진 유연함을 보여준다. 


1
2
3
4
5
6
7
8
9
<html>
<body>
<?php
$title = 'subject';
$$title = 'PHP tutorial'; # $subject = 'PHP tutorial';
echo $subject; # 'PHP tutorial'
?>
</body>
</html>



'Programming > php' 카테고리의 다른 글

[php] 입출력 그리고 폼과 HTTP  (0) 2017.09.18
[php] 비교  (0) 2017.09.18
[php] 기본 자료형  (0) 2017.09.14
첫번째 PHP 어플리케이션  (0) 2017.09.14
PHP란  (0) 2017.09.14