<?php ?>
<?
echo '한문장이 끝나면 반드시 마침표를 찍어야 합니다.;
?>
식별자 규칙
1. 문자와 밑줄(_)로 시작한다.
2. 두 번째 글자부터는 숫자, 문자, 밑줄이 가능하다.
3. 밑줄 이외의 기호는 사용할 수 없다.
4. 문자는 유니코드(한글포함)도 가능하다.
5. 변수는 대소문자를 서로 구분된다.
변수
$name
문자열(String)
1. 큰따옴표
" " 내부에 특수문자나 변수의 사용이 가능
예를 들어,
$name = "유성민";
"나의 이름은 $name 입니다.";
특수문자 | 의미 |
\n | 개행문자(줄 바꿈) |
\r | 캐리지 리턴 |
\\ | 역 슬래시 |
\t | 수평 탭 |
\" | 따옴표 |
\$ | 달러 표시 |
2. 작은 따옴표
" " 내부에 쓰인 특수문자와 변수가 허용되지 않는다.
3. 히어닥 문법
문자열의 시작을 알릴 때는 <<<
$str = <<<EOD
문자열이라네~
나도 문자열이라네~
EOD;
4. 나우닥 문법
히어닥 문법과 유사하나 다른 점은 식별자에 작은 따옴표가 붙는다는 표기법의 차이와 변수 등의 문자열 해석을 하지 않는다는 차이
heredoc은 따옴표 방식과 유사하고 nowdoc은 작은 따옴표 방식과 유사
$str = <<< EOT
내 이름은 "$name" 입니다.
문자열이 해석되지 않습니다.
EOT;
5. 변수의 해석
"문자열 내에 변수를 넣는 가장 쉬운 방법 : $money"
"문자열 내에 변수를 넣는 가장 안전한 방법 : {$money}"
슈퍼 전역 변수(미리 설정되어 있는 변수)
$_GET | HTTP GET 방식으로 넘어온 변수 |
$_POST | HTTP POST 방식으로 넘어온 변수 |
$_COOKIE | HTTP 쿠키 변수 |
$_FILES | 업로드 시 파일 정보 변수 |
$_SESSION | 세션 변수 |
$_SERVER | 웹 서버와 PHP 환경에서의 환경변수 |
$_ENV | 서버 시스템의 환경 변수 |
슈퍼 전역 변수는 모두 배열로 되어 있기 때문에 $_ENV['OS']와 같은 방법으로 변수에 접근할 수 있다.
static 변수
function Test(){
echo $a;
$a = "제발 출력해줘~";
}
아래는 static 사용 후
function Test(){
static $a = 0;
echo $a;
$a++;
}
define() 함수를 이용한 상수(자바에서 final과 같은 것)
<?
define("HELLO", "안녕하세요");
echo HELLO;
?>
위 예제는 안녕하세요 라는 문구를 출력합니다.
즉,
define("상수명","상수에 저장될 값");
논리연산자
예 | 이름 | 결과 |
$a and $b | AND | 두 변수 모두 참일 때 TRUE |
$a or $b | OR | 두 변수 중 적어도 하나가 참이면 TRUE |
$a xor $b | XOR | 둘 중 하나만 참이면 TRUE, 둘의 진리값이 같으면 FALSE |
!$a | NOT | 변수가 거짓일 때 TRUE, 참이면 FALSE |
$a && $b | AND | 두 변수 모두 참일 때 TRUE |
$a || $b | OR | 두 변수 중 적어도 하나가 참이면 TRUE |
문자열 연산자
$a = "안녕";
$b = "하세요";
$c = $a.$b;
변수와 변수 사이에 점을 찍어주는 것만으로 문자열은 서로 연결됩니다.
만약 두 문자열이 합쳐진 문자열 $c에 한마디를 더 추가하고자 한다면 다음과 같은 방식을 사용
$c .= "반가워요~";
$c .= " "; 의 의미는 $c = $c." "; 와 같습니다.
배열 연산자
배열을 서로 더하려면 + 기호를 이용할 수 있습니다.
<?
$a = array("a" => "사과", "b" => "바나나");
$b = array("a" => "배", "b" => "딸기", "c" => "포도");
$c = $a + $b;
?>
위 예제의 결과는 다음과 같다
$c = array("a" => "사과", "b" => "바나나", "c" => "포도");
이미 $a 배열에 a와 b가 있으므로 같은 키를 가지는 값은 덮어쓰지 않고 중복되지 않는 것만 추가
include 와 require
include와 require는 다른 파일을 가져와서 해당 위치에 파일의 내용을 적용하는 구조
include의 경우에는 경고만 출력하고 프로그램이 계속해서 수행되는데 반해서
require를 사용하면 에러가 발생하여 프로그램이더는 실행되지 않습니다.
사용 법은,
include "/var/www/test.php";
include 'test.php';
include ('test.php');
$file = 'test.php';
include $file;
또는
inc.php 파일
<?
$name = "뇌를 자극하는 PHP 따라잡기';
?>
------------------------------------------------
main2.php 파일
<?
include 'inc.php';
echo $name;
?>
함수(Function)
<?
function sum($a, $b){
return $a+$b;
}
$result = sum(3, 4);
echo $result . "<br>";
$result = sum(5, 7);
echo $result . "<br>";
?>
위 결과는 7 과 12 가 출력 된다.
함수의 인자
1. 값에 의한 인자 전달
<?
function swap($a, $b){
$c = $a;
$a = $b;
$b = $c;
}
$num1 = 5;
$num2 = 6;
swap($num1, $num2);
echo "$num1, $num2";
?>
아무 변화 없이 $num1 은 5, $num2 는 6의 값이 출력
이것은 변수 $num1과 $num2가 전달된 것이 아니라 변수 $num1과 $num2의 값인 5와 6이 각각 인자 $a 와 $b에 복사되었기
때문입니다.
2. 참고에 의한 인자 전달
<?
function swap(&$a, &$b){
$c = $a;
$a = $b;
$b = $c;
}
$num1 = 5;
$num2 = 6;
swap($num1, $num2);
echo "$num1, $num2";
?>
위 예제는 원본의 값을 수정합니다.
3. 기본 인자값
<?
function ezphp_net($url = "http://ezphp.net"){
return "홈페이지 주소 : $url<br>";
}
echo ezphp_net();
echo ezphp_net("http://www.ezphp.net");
?>
함수의 반환값
1. 값에 의한 반환
<?
function return_array(){
return array(0, 1, 2);
}
$array = return_array();
echo "$array[0], $array[1], $array[2]";
?>
위 예제의 결과는 0, 1, 2 가 출력됩니다.
2. 참고에 의한 반환
p121 참고
-----------------------------------------------------------------------------------------------------------------