본문 바로가기
테크노트/PHP

웹개발 - PHP 문법 기초편

by 테크한스 2021. 11. 14.

PHP 언어는 C,C++언어와 Java언어와 상당히 유사합니다. 그렇기에 한가지 언어를 마스터하게 되면 다음으로 접근하는 컴퓨터언어는 너무나도 접근하기가 쉬워지게 됩니다. 그러므로 첫번째 웹개발 언어로 PHP를 배우고 익힌다는 것은 나머지 2개의 언어도 추가로 얻을 수 있는 장점이 있겠습니다

 

이제 알아볼까요?


 

가장 먼저 알아볼 것은,

앞에서 출력해본 hello, world 에는 어떤 의미가 있을까요?

 echo "Hello, World !" 

 

- PHP에서 출력함수는 echo라는 것으로 사용합니다.

- 문자열은 보통 따옴표로 감싸주어 나는 문자열이다 라고 PHP해석엔진에게 알려주는 거죠

 


(0) 주석

- 한줄 스타일은 맨 앞에 // 이나 #으로 시작하면 됩니다

                       // 주석문 스타일 1

                       # 주석문 스타일 1      

- 여러줄 스타일은 맨앞과 뒤에 /*으로 시작해서 */으로 끝나면 됩니다

                        /* 주석문 여러줄

                            스타일 2         */

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php

//        echo "Hello, World !";
#         echo "Hello, World !";

/*        
          echo "Hello, World2 !;
          echo "Hello, World2 !;
*/

    ?>
</body>
</html>

(1) 변수 선언

 1) 변수의 시작은 알파벳이나 밑줄로 해야 한다. (숫자로 시작 불가)
 2) 변수명에는 a-z, A-Z, 0~9, _(밑줄) 만 사용해야 한다.
 3) 변수명에는 공백(blank)을 넣을 수 없다.
 4) 변수명은 대소문자를 구분한다. ($Good 과 $good 변수는 다르다)

 5) 변수는 변수명 앞에 $기호를 사용해야 한다. (변수임을 알림)

 6) 변수형(type)은 어떤 값이 할당되는냐에 따라 결정됨 (미리 선언할 필요 X)

 7) PHP 문장(statement) 끝에는 ; (세미콜론)으로 문장이 끝남을 알림

 8) 변수 문자(string)는 앞뒤에 ""(큰따옴표) 나 ''(작은따옴표)로 묶어준다.

 9) 변수이름은 내장변수로 사용하는 키워드(this 등)은 변수로 사용 불가

10) 변수의 선언과 함께 그 값을 초기화할 필요가 없음

 

(예제코드)

<?
///////////////////////////////  
/////// [1] 변수 선언 /////////
//////////////////////////////   
    echo "1) 변수 선언"."<br>";

    $user = "Tech Hans";
    echo $user;

// html tag를 echo로 출력 가능하다
    echo "<br>";
// 다른 변수에 값을 할당하기 
    $current_user = $user;
    echo "[DEBUG] ".$current_user;
    echo "<br>";

// 숫자 변수 
	$a = 10;
	$b = 5.5;
	$c = $a + $b;
	echo "[DEBUG] "."답은 ".$c;
	echo "<br><br>";

?>

(결과)

1) 변수 선언
Tech Hans
[DEBUG] Tech Hans
[DEBUG] 답은 15.5

 


(2) 문자열 (string)

문자열은 큰따옴표나 작은 따옴표를 사용하여 나타내며 두 문자열을 붙어 사용하려고 하면 +아닌 . (마침표)로 연결해야 합니다.

 

<?
	echo "<br>";
    $name1 = "Tech";
	$name2 = "Hans";
	echo $name1." ".$name2;
	echo "<br>";

?>

 (결과)

Tech Hans

 

문자열내에서 따옴표를 다시 사용하려고 한다면 큰따옴표,작은따옴표로 따로 표기해주거나 escape문자인 \(역슬래쉬)를 사용하여 표기합니다.

<?
	echo "<br>";
	echo 'he said "HI HELLO"';
	echo "<br>";
	echo "he said \"HI HELLO\"";
	echo "<br>";

?>

(결과) 

he said "HI HELLO"
he said "HI HELLO"

 


(3) 연산자 

 - C 언어와 거의 유사함

 - 연산자 종류

   1) 대입연산자 

        A = B  (왼쪽의 피연산자에 오른쪽의 피연산자를 대입)

       예제) $variable = 5;   (variable 변수에 5를 대입)

 

   2) 복합 연산자

       A += B (왼쪽의 피연산자에게 오른쪽의 피연산자를 더한 후에 왼쪽의 피연산자에게 대입)

       A -= B  (왼쪽의 피연산자에게 오른쪽의 피연산자를 뺀 후에 왼쪽의 피연산자에게 대입)

       A *= B  (왼쪽의 피연산자에게 오른쪽의 피연산자를 곱한 후에 왼쪽의 피연산자에게 대입)

       A /= B (왼쪽의 피연산자에게 오른쪽의 피연산자를 나눈 후에 왼쪽의 피연산자에게 대입)

       A % B  (왼쪽의 피연산자에게 오른쪽의 피연산자를 나눈 후에 그 나머지를 피연산자에게 대입)

       A .= B (왼쪽의 피연산자의 문자열에 오른쪽 피연산자의 문자열을 추가가 후에 왼쪽 피연산자에 대입

       A <<=B (왼쪽의 피연산자의 비트를 오른쪽의 피연산자만큼 모두왼쪽으로 이동후에 왼쪽 피연산자에 대입)

       A >>=B (왼쪽의 피연산자의 비트를 오른쪽의 피연산자만큼 모두 오른쪽으로 이동후에 왼쪽 피연산자에 대입)

       A &= B (왼쪽 피연산자의 논리식과 오른쪽 피연산자의 논리식이 모두 true이면 왼쪽의 피연산자에 true를 대입)

       A != B  (왼쪽 피연산자의 논리식이나 오른쪽의 논리식 중 하나라도 true이면 왼쪽의 피연산자에 true를 대입)

       A ^= B  (왼쪽 피연산자의 논리식과 오른쪽의 피연산자의 논리식이 서로 다르면 왼쪽의 피연산자에 true를 대입)

(예제)     

 <?
 $a = 10;
 $b = 20;

 echo "$b = $b + $a : ".($b = $b + $a);
 echo "<br>";
 $a = 10;
 $b = 20;

 echo "$b += $a : ".($b += $a) ;
 echo "<br>";
 $a = 10;
 $b = 20;

 echo "$b -= $a : ".$b -= $a;
 echo "<br>";
 $a = 10;
 $b = 20;

 echo "$b *= $a : ".$b *= $a;
  echo "<br>";
 $a = 10;
 $b = 20;

 echo "$b /= $a : ".$b /= $a;
 ?>

(결과) 

20 = 20 + 10 : 30
20 += 10 : 30
20 -= 10 : 10
20 *= 10 : 200
20 /= 10 : 2

 

  3) 증감 연산자

      ++$variable  (먼저 피연산자의 값을 1증가시키고 해당 연산을 수행)

      $variable++ (먼저 해당 연산을 수행한 후에 피연산자의 값을 1증가)

      --$variable (먼저 피연산자의 값을 1감소시키고 해당 연산을 수행)

      $variable-- (먼저 해당 연산을 수행한 후에 피연산자의 값을 1감소)

 

  4) 비교 연산자 

       A == B (왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 true 리턴)

       A != B  (왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 true 리턴)

       A <> B (왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 true 리턴)

       A < B (왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 true 리턴)

       A <= B (왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 true 리턴)

       A > B (왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 true 리턴)

       A >= B (왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참을 반환함)

(예제)

 <?
 echo "<br>";
 $hour = 13;

 if($hour != -1){
 	echo "시간 값이 입력되었습니다";
 }
 echo "<br>";

 if($hour == 12){
 	echo "점심시간입니다.";
 }else if($hour < 12){
 	echo "점심시간 전 입니다.";
 }else if($hour >= 13){
 	echo "점심시간 후 입니다.";
 }
 echo "<br>";
 ?>

(결과)        

시간 값이 입력되었습니다
점심시간 후 입니다.

 

  5) 논리연산자

     A and B (A 와 B 가 모든 참이어야 true 리턴)

     A or B  (A와 B 둘중에 하나만 참이면 true 리턴)

     A xor B  (A와 B의 논리가 서로 다르면 true 리턴)

     A && B (A 와 B 가 모든 참이어야 true 리턴)

     A || B (A와 B 둘중에 하나만 참이면 true 리턴)

       !A    (A의 결과가 참이면 false 리턴, A의 결과가 거짓이면 true 리턴)

 

 6) 비트연산자  (참고만 할것)

      A  & B  (대응되는 비트가 모두 1이면 1을 리턴)

      A | B (대응되는 비트에서 하나라도 1이면 1을 리턴)

      A ^ B (대응되는 비트가 서로 다르면 1을 리턴)

        ~A (비트를 1이면 0으로, 0이면 1로 반전)

      A << B (B에서 A 수만큼 비트를 왼쪽으로 이동시킴)

      A >> B (A에서 B 수만큼 비트를 오른쪽으로 이동시킴)

 

 

  7) 문자열연산자 

      ' ' (작은 따옴표) : 문장내에 모든 문자를 그대로의 문자열로 사용하는 경우

     (예제) $sentence1 = '나는 지금 10$를 가지고 있다'

     

     " " (큰 따옴표) : 문자 내에 변수($로 시작하는)를 사용하려는 경우

     (예제) $sentence2 = "우리집 냉장고에는 사과가  $number개 있다" 

 

 

   8) 문자열 연결 연산자

        . (마침표) : 마침표를 사용하여 문자열을 연결한다

(예제) 

	<?
    $a = 10;
	$b = 20;
	echo $a."+".$b."=".($a+$b); 
	echo "<br>";
	$a = 10;
	$b = 20;
	echo "$a+$b=".($a+$b); 
	echo "<br>";
// 문자열인 경우 
	$msg = 5;
	echo "You have ".$msg." messages";
	echo "<br>";
    ?>

(결과)

10+20=30
10+20=30
You have 5 messages


(4) 상수 (constant)

- 상수는 고정된 특정한 값을 표현한다

<?
	define("DOCUMENT_ROOT","/www/htdocs");
	$directory = DOCUMENT_ROOT;
	echo "directory is ".$directory;
?>

(결과)

directory is /www/htdocs

 

 

동영상으로 들으실 분들은 아래 영상 참조바랍니다.

 

https://youtu.be/1njCI-QavnE

 

'테크노트 > PHP' 카테고리의 다른 글

웹개발 - PHP 문법 클래스편  (0) 2021.11.15
웹개발 - PHP 문법 배열편  (0) 2021.11.15
웹개발 - PHP 문법 함수편  (0) 2021.11.14
웹개발 - PHP 문법 제어문  (0) 2021.11.14
웹개발 - PHP 시작하기  (0) 2021.11.05

댓글