대부분의 경우 PHP 스크립트는 데이터를 처리하고, 계산하고 출력하는 일을 한다. 데이터는 일반적으로 숫자(숫자 값)와 문자(문자열 값)로 구성되어 있다. 물론 다른 형태의 데이터도 있다.
정수와 부동소수:.
정수는 5, 10, 0, -3와 같은 숫자다.
부동소수는 5.25, -43.2339와 같이 소수점이 있는 숫자다.
문자열 데이터는 알파벳 글자로 구성되어 있다. 문자열 데이터의 예로는 "pepsi", "The Simpsons", "23 skidoo", "Yahoo!" 등과 같다.
정수, 부동소수, 문자열 값은 잘 알려진 스칼라 데이터다. 스칼라 데이터란 하나의 데이터에 한 개의 값만이 올 수 있는 값이다. 즉, 숫자 5나 단어 “hocky”는 하나의 값이다 (반대로 데이터로 여러 값의 목록을 갖는 것도 있는데 조금 후에 나온다).
대부분의 프로그램 언어와 마찬가지로 PHP에서도 값을 저장하기 위해 변수를 쓴다. 여기서 변수란 그 값을 참조하기 위한 이름표와 같은 것이다. 변수에 할당된 값은 결과 처리나 수식 연산과 같은 과정을 통해 변할 수 있다. 변수 이름으로는 보통 단어가 쓰이는데, PHP에서는 변수 앞에 ‘ $' 기호를 쓴다. 100이라는 값을 $price 라는 변수에 할당해 보자.
$price = 100;
위의 코드는 예제로 사용했지만 PHP 코드는 언제나 <?php … ?> 태그 안에 있어야 한다는 점을 명심하자.
또 알아둘 점은 위에서 보듯, PHP 문장의 마지막에는 세미콜론을 사용한다. 문장이란 프로그래밍의 한 단위다. PHP 문장은 수식으로 구성되어 있다. 여기서 수식이란 코드의 의미 있는 부분을 말한다. 이전의 예제는 할당 수식이었다. 값이 변수에 할당되었기 때문이다. 이 경우 문장은 단 하나의 수식이다. 많은 PHP 문장은 몇 개의 수식으로 이루어진다.
PHP는 다음과 같은 할당 수식의 내용에 의해 변수의 자료 형이 결정된다.
첫 번째 줄에서는 숫자 100 이 정수로 간주되어 변수에 할당된다.
두 번째 줄에서 값 주위에 따옴표가 있기 때문에 PHP는 Martin 을 문자열로 인식한다. 작은 따옴표로 둘러싸인 세 번째 줄의 ferret도 마찬가지로 문자열로 인식한다.
네 번째 예제에서 $name 의 자료형은 $firstName 에 의해 결정된다. 여기서 그 자료형은 문자열이 된다.
네 번째 예제에서 $name 에는 $firstName 의 값이 복사되어 들어간다. 만약 $name 의 값이 변해도 $firstName 의 값에는 아무런 변화가 없다.
중요: PHP에서 변수 이름은 대소문자를 구별한다. 즉, $firstName 은 $firstname와는 완전히 다르다.
PHP에서 왜 자료형을 따질까? 여러 개의 값으로 연산할 때는 자료형이 문제가 된다. 여기서 연산이란 덧셈, 뺄셈과 같은 산술연산도 포함된다. 예를 들면 정수와 부동소수를 더한다면 그 결과는 부동소수가 된다.
$total = $price + 3.95; #flat rate shipping
위에서 $total 에는 $price 에 3.95가 더해진 값이 들어간다. 여기서 또 한가지 볼 것은 ‘#'기호다. PHP에서는 #기호 이후 그 줄의 끝까지는 완전히 무시된다.(즉, 한 줄 주석이다) 따라서 #기호 뒤에 그 줄에 설명을 써 넣는다.
하지만 다음과 같이 정수와 문자열 값을 더한다고 해 보자.
$total = $price + "fruit juice";
물론 말이 안 된다. PHP는 이 문제를 해결하기 위해 문자열을 숫자로 변환한다. 만약 문자열이 "4.50" 와 같이 숫자로 되었거나 (4.50으로 변환) "10 apples"와 같이 숫자가 포함되어 있으면 (10으로 변환) 해당 숫자로 변환한다. 위의 예제에서 "fruit juice" 에 숫자가 없으므로 0으로 변환한다. 그리고 0 을 $price 의 값(100)에 더한다.
변수는 PHP를 포함한 대부분 프로그래밍 언어에서 중요하다. 변수는 데이터를 저장하거나, 처리, 출력할 때 사용한다