1. 기본문법
2. 변수
1. 기본문법
- PHP code mode
echo "PHP를 배워보자\n";
?>
echo "PHP를 배워보자\n";
?>
PHP의 시작과 종료태그로는 을 사용하며, ; (세미콜론)으로 각 문장을 종료합니다.
echo는 ASP의 response.write와 같이 글자를 화면에 출력하기 위해 사용되는 것입니다. echo 대신 print라고 쓸 수도 있습니다.
- 주석문의 사용
echo "PHP를 배워보자\n"; // 한줄의 주석문
echo "PHP를 배워보자\n"; # 한줄의 주석문
/* 여러줄의 주석문
여러줄의 주석문에 이용*/
echo "PHP를 배워보자\n";
?>
한줄의 주석문은 // 또는 # 표시이후 주석을 달면되며, 여러줄의 주석문은 /* 시작하여 */ 로 끝을 맺으면 됩니다. 단, 이 형태(/* ~ */)는 주석문 안에 주석문을 중복하여 사용할 수 없습니다.
- 정수형 및 실수형의 표현
$a = 1234;
$a = -123;
$a = 0123;
$a = 0x12;
$a = 1.234;
$a = 1.2e3;
정수형 및 실수형의 값을 변수에 대입하여 사용합니다. 변수는 $을 붙여서 씁니다.
- 문자열의 표현
큰따옴표(" ")로 문자열을 둘러싸며, 특수문자를 포함할 수 있습니다.
작은따옴표(' ')를 사용할 수도 있는데, 이것은 \\과 \' 두개의 백슬래시 처리만을 하며, 변수를 사용하여 그 값을 출력하지 못하며 다만 문자열로 표현됩니다.
$a = "PHP를 배워보자"; // echo $a -> PHP를 배워보자
$a = 'PHP를 배워보자'; // echo $a -> PHP를 배워보자
$a = "PHP를 배워보자\n"; // echo $a -> PHP를 배워보자 (\n 엔터역할함)
$a = 'PHP를 배워보자\n'; // echo $a -> PHP를 배워보자\n (\n 문자로 인식 화면에 나옴)
?>
- 백슬래시(\)를 사용한 특수기호 표시
\n : newline(엔터)
\r : carriage(캐리지)
\t : horizontal tab(탭)
\\ : backslash(\)
\$ : dollar sign($)
\" : double-quote(")
- 문자열의 결합
문자열의 결합은 + (더하기) 연산자를 사용할 수 없고, . (점) 연산자를 사용합니다.
$str = "PHP를";
$str = $str . " 배워보자";
$str .= " 열심히\n"; // 이 경우는 필히 .과 =을 붙여서 사용하여야 함.
echo $str; // PHP를 배워보자 열심히 -> 이렇게 화면출력됨.
?>
2. 변수
- 지역변수와 전역변수
지역변수는 함수안에서 선언된 변수로 함수안에서만 영향력을 미치는 변수입니다. 그에 반해 함수외에서 선언된 변수로 PHP 코드 전역에서 영향력을 미치는 변수는 전역변수라고 합니다.
$a = "PHP"; // 전역변수
function test1() { // 임의로 정의한 함수
echo $a; // 값 출력
}
function test2() { // 임의로 정의한 함수
$a = "STUDY"; // 함수내의 지역변수
echo $a; // 값 출력
}
echo $a; // 값 출력
test1(); // 함수호출
test2(); // 함수호출
?>
test1의 함수 호출결과는 값이 없으며, test2 함수호출 결과값은 STUDY 로 나오게 됩니다.
test1 함수에는 선언된 변수가 없으므로 결과값이 없으며, test2 함수에는 $a = "STUDY"라는 변수를 정의해 주었기 때문에 결과값이 나오게 됩니다.
함수밖에서 선언된 변수($a = "PHP")는 전역변수로서 함수내에 영향을 미치지 못합니다. 함수밖의 echo $a에서 전역변수 값을 얻을 수 있습니다.
전역변수를 함수내에서 사용하고 싶으면 변수에 global 선언을 해주면 됩니다. 그 예는 아래와 같습니다.
$a = "PHP"; // 전역변수
function test3() { // 임의로 정의한 함수
global $a; // 전역변수를 참조한다는 global 선언
echo $a; // 값 출력
}
test3(); // 함수호출
?>
test3 함수 호출결과 값은 PHP 입니다.
두번째 방법은 $GLOBALS라는 배열을 사용하는 것입니다.
$a = "PHP"; // 전역변수
function test4() { // 임의로 정의한 함수
echo $GLOBALS["a"]; // 값 출력
}
test4(); // 함수호출
?>
test4 함수 호출결과 값은 PHP 입니다.
- 정적변수와 가변변수
정적 변수는 함수 내에서만 존재하지만 함수가 종료되어도 그 값을 가지고 있습니다.
보통변수와 정적변수를 비교해 보겠습니다.
function test() { // 임의로 정의한 함수
$a = 0; // 변수선언
echo $a; // 값 출력
$a++;
}
test(); // 함수호출
test(); // 함수호출
test(); // 함수호출
test(); // 함수호출
test(); // 함수호출
?>
출력되는 값은 00000 입니다. 이는 함수가 종료되면 그 값을 잃어버리기 때문에 항상 값이 0 이 됩니다.
따라서 변수에 static을 사용하여 정적변수로 선언하면 변수의 값을 계속 유지할 수 있습니다.
그 예는 아래와 같습니다.
function test() { // 임의로 정의한 함수
static $a = 0; // 정적변수선언
echo $a; // 값 출력
$a++;
}
test(); // 함수호출
test(); // 함수호출
test(); // 함수호출
test(); // 함수호출
test(); // 함수호출
?>
출력되는 값은 01234 입니다.
가변변수는 변수의 값을 변수의 이름으로 사용하는 것입니다.
$a = "PHP";
$$a = "STUDY";
echo $a, $PHP;
echo $a, ${$a};
?>
echo $a, $PHP;와 echo $a, ${$a};의 결과값은 동일하게 PHPSTUDY가 됩니다. 가변 변수를 나타낼 때는 { }로 둘러 싸는 것이 구분하기 쉽습니다.
'프로그래밍 > PHP' 카테고리의 다른 글
php 기본 자료 3 (0) | 2012.08.17 |
---|---|
php 기본 자료 2 (0) | 2012.08.17 |
php -xml parser (0) | 2012.08.17 |
php - 이메일 존재여부 검색 프로그램 (0) | 2012.08.17 |
php - 소켓 통신 자료(socket fd 에서 eof 인식문제) (0) | 2012.08.17 |