본문 바로가기

웹프로그래밍

[PHP 프로그래밍 입문 2장] 기본 문법

<?php는 php 프로그램의 시작

?>는 프로그램의 끝

각 문장의 끝에 반드시 ;(세미콜론) 넣기

 

문자열은 " "나 ' '로 감싸준다.

만약 문자열 안에 인용 부호를 출력하고 싶다면?
1) " ' ' " 작은 따옴표와 큰 따옴표 혼용해서 사용

2) 이스케이프 문자 사용 \" \' -> " \" \" "

<?php
echo "누가 \"안녕\"이라고 말했다";
?>

 

숫자는 서로 다른 숫자 더할 때 + 사용하지만 문자는 .을 사용해야 한다.

<?php
echo "Hello"."World";
?>

 

주석문 세 종류 있다. 

// - 주석이 한 행

/* */ - 주석이 여러 행

#

 

변수 이름 앞에는 $를 사용한다.

$a: a라는 변수

변수명은 영문 소문자와 숫자, 밑줄 조합으로 만든다.

변수명에 특수문자, 한글, 공백 사용 x

<br>이나 <br/> 모두 가능 = 줄 바꿈

<?php
$a = 10;
$b = 20;
$c = $a + $b;
echo "$c<br>";

$a = 18.5;
$b = 39.3;
$c = $a + $b;
echo $c;

$fruit = "사과";
echo "$fruit";

$fruit = "오렌지";
echo "$fruit";
?>

 

숫자 말고는 echo문 뒤에  " " 쓴다고 생각하자. 

<br> <img> 태그나 변수($~~) 모두 " "나 ' " 안에 넣어라. 따옴표로 감싸주기. 

 

echo 문에서 문자열과 HTML 태그 모두 출력할 수 있다. 

filename도 변수니깐  ' '로 감싸준다. " "로 감싸면 오류난다. 

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
</head>
<body>
  <h3>
  	<?php
  	echo "고양이와 토끼";
  	?>
  </h3>
  <?php
  $filename = "cat.jpg";
  echo "<img src='$filename'><br>";

  $filename = "rabit.jpg";
  echo "<img src='$filename'>";

  ?>
</body>
</html>

 

" "나 ' '나 큰따옴표, 작따옴표 실행하면 결과 똑같다. 

님 반갑습니다! 부분 ~~

<?php
$name = "홍지수";

echo $name;
echo "님 반갑습니다!";
echo "<br>";

echo $name;
echo '님 반갑습니다!';
?>

 

 

변수는 " " 큰 따옴표로 묶어줘야만, 그 안의 값을 사용할 수 있다. 작은 따옴표 ' '로 묶게 되면 그냥 문자로 판단해버린다. 

echo문 안의 변수 값을 출력하려면 큰 따옴표를 사용해라@!!!

<?php
$name = "홍지수";

echo "$name 님 반갑습니다!";
echo "<br>";

echo '$name 님 반갑습니다!';
?>

" "로 묶은 echo문만 변수값인 홍지수가 출력되었고, 작은 따옴표로 묶은 것은 $name을 변수가 아닌 문자로 출력해버린다. 

 

echo문에서 변수명과 문자열이 붙어있는 경우 echo문 큰 따옴표 안에 있는 변수 '$name님'을 변수명으로 인식한다. 

정의되지 않은 변수 오류가 발생한다. 

<?php
$name = "홍지수";

echo "$name님 반갑습니다!";
?>

 

어떻게 해결해야 할까??? 

 echo문에서 변수명과 문자열을 붙여서 출력하려면 변수명을 중괄호 { }로 감싸야 한다.

<?php
$name = "홍지수";

echo "{$name}님 반갑습니다!";
?>

 

큰 따옴표 안에 큰 따옴표를 사용하면 오류가 난다. 

php 해석기가 서버에서 해석을 해서 웹 클라이언트에게 보내주려는데 해석 시 <img src=을 하나의 문자열로 처리하여서 오류가 난다. 

<?php
echo "<img src="cat.jpg">"
?>

다음과 같이 수정하면 된다. 

<?php
echo "<img src='cat.jpg'>"
?>
<?php
echo "<img src=\"cat.jpg\">"
?>

 

약식으로 echo문 표기하기

<?= 는 <?php echo 와 같은 의미이고, 축약 표현이다. 

<?=는 PHP의 짧은 태그(short tag) 중 하나입니다. 이 표기는 <?php echo의 축약 버전

<?php
$id = "rubato";
$name = "루바토";
?>
<h3>회원정보</h3>
<p> - 아이디 :  <?= $id?></p>
<p> -이름: <?= $name?></p>

 

정수와 실수

\$는 $를 출력하는 이스케이프 문자이다. 

PHP에서 변수의 데이터형은 변수의 값의 데이터형에 따라 결정

<?php
$a = 3769;
echo "\$a: $a";
echo "<br>";

$a = 126.7;
echo "\$a: $a";
?>

 

문자열 사용

<?php
$title = "<h3>연락처</h3>";
$name = "홍길동";
$address = "경기도 성남시 분당구";
$phone = "010-1234-5678";
$email = "user@codingschool.biz";

echo "$title";
echo "이름: $name<br>";
echo "주소: $address<br>";
echo "전화번호: $phone<br>";
echo "이메일: $email<br>";
?>

 

불 데이터형

$a는 true로 1 출력되고, $b는 false로 아무것도 출력되지 않는다. 아무 값도 가지지 않은 경우를 null(널)이라고 한다. 

null은 정수인 0 이나 공백문자인 " "과는 다르다.

null은 큰 따옴표 사이에 아무것도 없는 ""표현할 수 있으며, 값이 없음을 의미한다. 

<?php
$a = true;
$b = false;

echo "$a";
echo "<br>";
echo "$b";
?>

 

산술 연산자

곱하기나 나누기 먼저 계산한다. 

나머지 연산 %

승수 ** 2**5 = 2의 5승 = 32

<?php
$a = 3;
$b = 5;

$c = $a + $b; //8
$c ++; //아직은 8이고 다음줄부터 9됨

$c = $c + $a; //12
$d = $a +$c*$b; //63

echo "\$d : $d"; //$d: 63
echo "<br>";

$a = 10;
$b = $a%3; //나머지 연산1
$b--; // 다음줄부터 0됨

$c = $a - $b; //10
$c = $c - 5; //5

echo "\$c : $c"; //\c : 5

?>

 

문자열 연결 연산자 . (도트)

$a.$b = 문자열 $a와 $b를 연결하여 하나의 문자열로 

echo 문에서 변수의 값을 쓰고 싶으면 $ 무조건 쓰기!!! 안 쓰면 문자열 취급됨..

<?php
$num1 = "010";
$num2 = "1234";
$num3 = "5678";
$phone_number = "$num1"."-"."$num2"."-"."$num3";

echo "휴대폰 번호: $phone_number"."<br>";

$email1 ="admin";
$email2 = "codingschool.info";

$email = "$email1"."@"."$email2";

echo "이메일 주소: $email";

?>

 

대입 연산자 사용

변수에 값 대입 시 (저장 시) 사용하는 연산자

= += -= *= /= %= .=

<?php
$a=5;
echo "$a"."<br>";

$a += 3; //8
echo $a."<br>";

$a -=4; //4
echo $a."<br>";

$a *= 2; //8
echo $a."<br>";

$a /= 4; //2
echo $a."<br>";

$a %=2; //0
echo $a."<br>";

$a="딸기";
$a.="주스";
echo $a."<br>";

?>

비교 연산자

 

논리 연산자

! &&(and) ||(or)


연습 문제

04. 

밑의 코드는 축약형으로 만든 것

<?php
$name="ooo";
$number="010-xxxx-xxxx";
$address="서울특별시";
$email="aaaa@naver.com";

echo "-이름 : $name<br>";
echo "-휴대폰 번호 : $number<br>";
echo "-주소 : $address<br>";
echo "-이메일 : $email<br>";

?>

<p>-이름 : <?=$name ?></p>
<p>-휴대폰 번호 : <?=$number ?></p>
<p>-주소 : <?=$address ?></p>
<p>-이메일 : <?=$email ?></p>

05. 

출력은 되게 했는데 style 부분이 헷갈렸음

<html>로 출력될 부분은 태그로 묶고, <style> 태그 안에 표 style 코드 작성하면 됨

border-collapse 속성은 표에서 바깥쪽 테두리와 안쪽 테두리를 그렸을 때 이 두 개의 테두리를 합쳐서 표시할지 분리해서 표시할지를 정해주는 속성

 

separate 테두리 따로 표시
collapse 테두리 하나로 합쳐서 표시
<?php
$name="ooo";
$number="010-xxxx-xxxx";
$address="서울특별시";
$email="aaaa@naver.com";
?>
<html>
<style>
	table{
		border: 1px solid black;border-collapse : collapse; 
	}
	td{
		border: 1px solid black;
	}
</style>
<table>
	<tr>
		<td>이름</td>
		<td>휴대폰 번호</td>
		<td>주소</td>
		<td>이메일</td>
		
	</tr>
	<tr>
		<td><?php echo $name ?></td>
		<td><?php echo $number ?></td>
		<td><?php echo $address ?></td>
		<td><?php echo $email ?></td>
	</tr>

</table>
</html>

축약형으로 표시해도 됨

<tr>
		<td><?= $name ?></td>
		<td><?= $number ?></td>
		<td><?= $address ?></td>
		<td><?= $email ?></td>
	</tr>

border-collapse: separate 시 테두리가 분리됨. table하고 td의 테두리가!!
border-collapse: collapse 시 table하고 td의 테두리가 합쳐짐

 

13.

<?php
$child_fee = 5000;
$adult_fee = 8000;
$num_child=3;
$num_adult=2;

$total_fee = $child_fee*$num_child + $adult_fee*$num_adult;

echo "전체 입장료: $total_fee 원";
?>


14.

<?php
$money = 3000;
$price = 800;
$num = 3;

$change = $money - $price*$num;

echo "물건 가격 : $price <br>";
echo "구매 개수 : $num <br>";
echo "지불액 : $money <br>";
echo "거스름돈은 $change 원 입니다. <br>";

?>

15.

<?php
$num1 = "991111";
$num2 = "1010111";
$id = $num1."-".$num2;
echo "주민등록번호 : $id<br>";

$email1 = "master";
$email2 = "codingschool.info";
$email = $email1."@".$email2;
echo "이메일 주소 : $email";

?>

 

https://develop247.tistory.com/44

 

참조) PHP 프로그래밍 입문 3판