1. 기본 규칙
▶ <?php ?> 로 시작(php 언어 시작) --> php 생략 가능
▶ 주석처리 // or ## or /* */ 로 사용 --> <? ?> 안에서만 먹힘
▶ 출력(out.print 등등) : echo 사용
2. 변수명 규칙
▶ $로 시작, $ 뒤에 오는 글자는 언더바 or 문자 써야함
<ex>
<?
$name //유효한 변수선언
$_name //유효한 변수선언
$nick_name //유효한 변수선언
nick_name //달러표시로 시작하지 않아 유효하지 않음
$1_name //첫문자 숫자사용으로 유효하지 않음
$nick-name //특수문자사용으로 유효하지 않음
$nick_name more //빈칸이 포함되어 유효하지 않음
$this //$this는 특수 변수로, 할당할 수 없어 유효하지 않음
?>
3. 변수 범위(전역변수, 지역변수)
--> 전역변수는 함수 내에서 사용 불가능
--> 전역변수를 함수 내에서 사용하기 위해선 global 전역변수명;
--> 함수 내에서 변수를 초기화 및 선언 해야함
--> 함수 내에서 변수 초기화 및 선언 함 > 함수 다 돌았음 > 변수 삭제 가 반복됨
--> 변수 삭제가 안되고 유지되게 하려면 static를 변수에 붙여서 정적변수로 선언 (ex 변수 증가처리하고 싶을때)
<bash />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?
$a = 10; // 전역변수
// 함수
function test() {
echo $a; // 지역변수(아무것도 안뜸)
echo "<br>";
echo "adfadfadf"; // 값 뜨는지 확인하기 위해
}
test(); // test 함수 실행시키자
// 결과 : 아무것도 안뜸
// 함수 안의 지역변수와 바깥의 전역변수가 다른 변수로 인식하므로 선언만 한걸로 되기 때문에 값이 없음
?>
<hr>
<?
function test2() {
$a =2; // 함수 안에서 선언 & 초기화 함께 해야함
echo $a;
echo "<br>";
}
test2();
// 결과 : 2
?>
<hr>
<?
function test3() {
global $a; // 함수 내에서 사용할 전역변수르 명시함(전역변수의 값을 가져오고 싶을떄 global 사용)
echo $a;
}
test3();
// 결과 : 전역변수의 값인 10
?>
<hr>
<?
function test4() {
static $b =0; //static 쓰면 값을 함수가 끝나도 유지될 수 있게 정적 변수로 선언
echo $b;
$b++;
}
test4(); // 0뜸
test4(); // 한번 더 실행해도 0임 --> why? 함수내 변수는 함수가 끝나면 삭제되므로
test4(); // static 쓰면 012처럼 1씩 증가함(함수 실행시킨만큼)
?>

4. 문자열
--> " " : 문자열, 변수의 값 출력
--> ' ' : 문자열, 변수 자체를 출력
--> 변수+"문자열 형식이 아닌 변수."문자열 형식임
--> 변수와 문자열 사이 띄어쓰기 없이 사용하고싶다면 방법1) 변수."문자열 or 방법2) {$변수}문자열
<bash />
<!DOCTYPE HTML>
<html>
<head>
<title>test </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
</style>
</head>
<body>
<?
// 변수선언 : $로 시작
$str = "hello";
$num = 1;
// 출력
// 변수 str을 출력해라 (변수와 문자열 함께 쓰는 경우 jsp에서는 +를 썼지만 php에서는 .(마침표)로)
echo '$str='.$str."<br>";
echo '$num='.$num."<br>";
echo 'hello $num='."hello $num<br>";
echo 'hello'."<br>";
echo 'hello $num'."<br>"; // 홀따옴표 안에 변수 넣으면 안먹음(변수 그대로 노출하고 싶을때 사용하면 될듯)
?>
<hr>
<? // = 대신 echo 사용할 수 있음 ?>
<?=$str?><br>
<?=$str;?><br>
<?echo $str?><br>
<hr>
<?
$money = 1200;
echo "수입이 $money원 발생<br>"; // 출력안됨(원까지 변수로 인식하므로)
echo "수입이 ".$money."원 발생<br>"; // 문자열.변수.문자열 형식으로 쓰는 방법1
echo "수입이 {$money}원 발생<br>"; // 변수임을 알수 있게 중괄호 쓰는 방법2
?>
<hr>
<script language='php'>
echo "php인가 스크립트인가"; // <? ?> 과 동일한 기능임
</script>
<hr>
</body>
</html>

5. 참조, 비교, 논리, 형 연산자
--> &변수 : 참조
--> unset(변수) : 값 삭제



<bash />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?
//참조연산자
$a =5;
$b = &$a; // & : a값을 복사해라(참조해라)
$c = $a; // a값을 대입
$a = 7;
?>
a : <?=$a?><br> <? // 7 ?>
b : <?=$b?><br> <? // &를 붙힌 후 결과 값은 7임 ?>
c : <?=$c?><br> <? // 5 : a값을 대입이므로 영향 x ?>
<hr>
<?
unset($a); // $a 값이 없어짐
?>
a : <?=$a?><br> <? // 값 없음 ?>
b : <?=$b?><br> <? // 7 ?>
c : <?=$c?><br> <? // 5 : a값을 단순히 대입이므로 영향x ?>
<hr>
<?
/* 비교연산자
== 두개 : 값 비교
=== 세개 : 타입, 값 비교
*/
$c = 1; // int
$d = true; // boolean(true =1, false =0 으로 대체됨)
if($c == $d){
echo "값이 같다<br>";
} else {
echo "값이 다르다<br>";
}
// 결과 : 값이 같다
if($c === $d){
echo "타입과 값이 같다<br>";
} else {
echo "타입과 값이 다르다<br>";
}
// 결과 : 타입과 값이 다르다
?>
<hr>
<?
// 형 연산자
$money = 1000000;
$m = 1234567.89;
?>
<?=$money?><br>
가격 : <?=number_format($money)?>
<input name="price" value="<?=$money?>"> <br>
<?=$m?><br>
가격 : <?=number_format($m,2)?> <? // 소수점 2자리 표시 1234567.89?> <br>
가격 : <?=number_format($m,1)?> <? // 소수점 1자리 표시(반올림 해서) 1234567.9?>
<input name="price" value="<?=$m?>"><br>
