개발바닥 아방수

PHP 변수, 상수, GET/POST, 연산자 개념/실습 본문

웹 개발/PHP

PHP 변수, 상수, GET/POST, 연산자 개념/실습

앙큼아기 2022. 6. 29. 14:37

✅ PHP 실습 1

<html>
<head>
  <title>첫번째 PHP 프로그램</title>
</head>
첫번째 PHP 프로그램입니다.... .<br>
<body>
<?php> ## start PHP
  $a = 3; ## declare variable a with $ sign, and value 3 gose into variable ($ 사인과 함께 변수를 선언하고, 변수 값으로 3이 들어간다)
  $b = 5; ## Not like C and Java, valiable can be used with its declaration (파이썬도 동일, 파이썬이나 이를 인터프리터 언어라고 함, 해석하면서 실행됨)
  $c = $a + $b;
  echo "$a plus $b equals $c<br>";
?>
</body>
</html>

<br> 한줄을 띄운다.▶ 파일 저장후 localhost/1-1.php를 검색하면 접근 된다.⇒ 결과물

  • ▶ 해당 파일을 C드라이브 > APM_Setup > htdocs 파일로 지정하여 저장한다. 이때 파일형식은 모든 파일로 하며, 이름은 .php로 끝낸다.
  • 메모장은 바탕화면으로, 폴더는 PHP 폴더 세팅한다.

 

 

🔎 PHP 프로그램의 기본 형태

  • 확장자가 ~.php라도 그 내용이 모두 PHP 코드로만 되어 있는 것은 아니다. PHP 코드는 <? ~ ?> 으로 되거나 <?php ~ ?>으로 되는데 여기서는 <?php ~ ?>으로 하겠다.
  • 어떤 형태든 간에 PHP 코드 부분 이외의 나머지 부분은 일반적인 HTML 파일로 간주된다.
  • PHP, ASP, JSP 등 웹 프로그램은 정적인 HTML로는 만들 수 없는 동적인 내용을 담는 웹 페이지를 만들기 위해서 사용되는데 HTML 파일 안에서 필요한 부분에 코드가 삽입되는 형태를 가진다.
  • 필요하면 <?php ~ ?> 안에 또 다른 <?php ~ ?>가 들어갈 수 있고, <?php ~ ?>가 여러 개 나열될 수도 있다.
  • 모든 PHP 프로그램이 꼭 HTML 파일의 완전한 형태(<html>, <head>, <body>,,,)를 가질 필요는 없다.

 

 

✅ PHP 실습 2

  • ⇒ 결과물
  • <?php echo "두번째 PHP 프로그램입니다<br><br>"; /* 3 더하기 5를 계산하는 프로그램 입니다...ㅋㅋ */ $a = 3; $b = 5; $c = $a + $b; echo "$a + $b = $c<br>"; // C는 a+b 값이죠 ?>

 

 

🔎 문장과 주석

  • C나 Java 언어와 마찬가지로 PHP 프로그래밍 언어로써 기본을 갖추고 있는데
    1. 문장 끝은 ;으로 끝난다.
    2. 프로그램 작성이나 수정 중에 사람이 읽고 프로그램 구성을 쉽게 파악할 수 있게 하는 주석(remark, comment)을 사용할 수 있다.주석은 Oracle에서의 주석과 동일한데
      • 여러줄 주석은 /* ~ */으로 해주고,
      • 한 줄 주석은 // 으로 시작해서 행이 바뀌면 끝난다.
  • 주석(Remark)은 실행되어져서 화면에 출력되지 않는다. 프로그램의 이해를 돕기 위한 목적이고 에러시 디버깅에 도움이 된다.
  • echo 명령어를 이용한 출력, 출력에 주로 사용되는 도구가 echo다.
  • PHP는 웹 프로그래밍 언어이기 때문에 출력 결과가 웹 브라우저에 표시된다.

 

 

echo 명령어를 이용한 출력 실습

  • 특수문자 앞에는 / 역슬래시를 넣는다.

  • ⇒ 결과물
<?php echo "ECHO 사용 예제<br><br>"; 
echo "숫자도 출력 가능해요: "; 
echo 15; echo "<br>"; 
echo "당연히 문자열도 출력하죠: "; 
echo 3 + 7; 
echo "<br>"; 
echo "3 + 7"; 
echo "<br>"; 
echo "특수문자도 출력합니다: \\$<br>"; 
/* 특수문자 앞에 W를 넣으면 그 뒤는 특수문자(부호)처리 된다. */ 
ECHO "대문자 ECHO도 사용할 수 있어요: <br>"; // 대소문자 구별이 없다. ?>

 

 

🔎 PHP 언어 사용법

  • echo 뒤에 숫자나 계산식을 쓸 수 있다. ⇒ 숫자는 그대로 써서 echo 뒤에 15를 적으면 그대로 15로 나오고, “8 + 7”하면 계산해서 문자열 취급되어서 15가 아니라 8 + 7로 보인다.
  • <br>은 HTML 태그로서 줄 바꿈이다.
  • 문자열을 출력할 때 “ “를 사용하고
  • 기호와 같은 특수문자를 출력한다면 \ 뒤에 \# 식으로 써주면 된다.
  • $는 PHP의 변수 명을 표시한다.
  • 예약어(echo, get, put, …)는 대소문자를 구분하지 않지만 변수명과 함수명은 대소문자를 구분한다
  • 연달아 나오는 공백이나 개행문자(다음줄로 넘김)은 하나의 공백으로 처리하며, 특히 문자열의 앞에 나오는 공백 문자들은 모두 무시된다.
    <?php
      echo "   *<br>";
      echo "  **<br>";
      echo " ***<br>";
      echo "****<br>";
    
      echo "&nbsp;&nbsp;&nbsp;*<br>";
      echo "&nbsp;&nbsp;**<br>";
      echo "&nbsp;***<br>";
      echo "****<br>";
    
    ?>
    
  • ⇒ 웹브라우저에서 공백을 제대로 표시하려면 공백마다 HTML 코드인 ** **을 넣어주면 된다.
  • echo 문장에 적어주는 문자(어구)는 여러 줄에 걸쳐 있어도 하나의 문자열로 해석되어 출력된다.~
    <?php
    echo "What a wonderful
          world this planet is....
          hur????
          Surely you're right!!!
    ";
    ?>
    
  • “의 내용이 모두 한 줄이 된다.“

 

 

🔎 변수와 상수의 개념

  • C나 Java와 같은 프로그램에서 배웠겠지만 상수(constants)는 변하지 않는 값인데 7, 3.14, “abc” 등을 말한다. 프로그램 안에서 고정된 값이다. 소수점 없는 숫자인 정수, 소수점 있는 숫자인 실수, 참/거짓의 불린(boolean), 그리고 문자들로 이뤄진 문자열이 있다. 문자열은 ‘’이나 “”을 모두 사용할 수 있다.
  • 변수(variables)는 변할 수 있는 값으로써 프로그램 실행 중(일정 기간) 저장할 필요가 있는 값을 담아두는 **메모리상의 저장공간(container)**으로 볼 수있다.

 

 

✅ PHP 변수 이해하기

<?php

echo 1 + 2 + 3 + 4;
echo "<br>";
echo 1 + 2 + 3 + 5;
echo "<br>";
echo 1 + 2 + 3 + 6;
echo "<br>";
echo "--------------";
$a = 1 + 2 + 3;
echo "<br>";
echo $a + 4;
echo "<br>";
echo $a + 5;
echo "<br>";
echo $a + 6;

?>

⇒ 결과물

 

 

🔎 변수 만들기

  • PHP는 C나 Java와 달리 변수를 사용하기 전에 미리 선언하지 않아도 된다.
  • 변수는 값을 처음 대입하는 순간 생성된다(사용할 때 그 자리에서 생성하면서 바로 사용한다)
  • 변수명은 C나 Java에서의 변수명 생성과 유사한데
    • **첫 번째 글자는 알파벳이나 _**로 시작되고
    • 그 다음에는 알파벳, _, 숫자를 섞을 수 있고
    • 특수문자(!@#$%^&*) 등과 공백을 사용할 수 없다는 것인데,
    • 한 가지 특이점은 **변수 앞에 $**를 붙인다는 것이다.
    • 하나의 변수 $a에 정수, 실수, 문자열 등 여러 데이터 형을 대입해도 아무 문제가 없다. ⇒ cast(형변환)이 필요없다
      • 형변환은 10f / 2.3 OR (float)10 / 2.3 식으로 형변환을 해야 실행된다. / 2.3이 실수이므로 10이라는 정수도 실수 10.0이 되어야 계산이 된다.
    • 이 변수명 작성은 함수명 작성 시에도 똑같이 적용된다.

 

 

✅ 변수 실습하기

<?php

$a = 3;
echo "값은 $a입니다.<br>"; // $a입니다 전체가 변수로 인지되기에 오류
echo "값은 $a 입니다.<br>";
echo "값은 $a&nbsp;입니다.<br>"; // &nbsp;로 한 줄 떨어져 변수로 인지됨
echo "값은 {$a}입니다.<br>"; // 변수와 "입니다"를 붙이는 방법으로 가장 좋은 방법

?>

⇒ 결과물

 

 

🔎 값을 입력받는 방법

  • 프로그래밍에서는 사용자로부터 값을 입력받는 것이 필수적이다. C에서는 scanf() 함수를 사용해서 콘솔에서 직접 입력받을 수 있는데 PHP는 웹에서 동작하므로 HTML의 <form> 태그를 사용해서 구성된 입력 폼을 통해서 값을 입력받아야 하고, 입력된 값을 확인(submit) 버튼을 누르면 HTML 페이지가 전환될 때 PHP 프로그램으로 값이 전달된다.
    <form action=”이동할_PHP_페이지” method=”POST(or GET)_전송방식”>
    입력_콘트롤 태그들
    …
    <input type=submit value=”확인(or OK)”>
    </form>
    
  • ⇒ 이런 복잡함 때문에 CSS 와 같은 것이 필요해진다.
  • 여기서 이 Html 폼 파일과 실제 값을 입력 받아서 처리해주는 php 파일이 연동되어져야 하므로 보통 같은 디텍터리 안에 두 파일이 있어야 한다.
    • action 속성에는 확인 버튼을 눌렀을 때 이동할 웹 페이지의 URL(or 이동할 페이지 이름)을 써주는데 이동할 파일이 a.php라면 action=”a.php”식으로 해주면 된다.
    • method 속성은 데이터를 넘겨주는 방식을 적어주는데 GET와 POST 두가지 방식이 있다. POST(값이 전달될 때 사용자의 눈에 보이지 않고)나 GET(값이 전달될 때 웹브라우저의 주소창에 표시된다) 중 하나를 적어주면된다
    • 입력_컨트롤_태그는 <form> 태그 내부에서 사용되는데 text box, radio button, dropdown list, check box 등을 화면에 표시해주는 <input>, <select>, <textarea>태그들을 써주면 된다.
    • submit 버튼은 입력_컨트롤_태그의 여러 옵션들과 마찬가지로 <input> 태그를 통해서 입력된 값을 지정된 페이지로 전해주는 기능을 한다.
    ❇️ radio button (php) ❇️ dropdown list (html)❇️ check box (php)
    • 여러개의 값을 주고 받을 수가 있기 때문에 위에서 input type에서 name을 배열로 key_name[] 이렇게 담고 있음을 주의해야 한다.
    • (참고출처) https://devjhs.tistory.com/531
    ❇️ textarea (php)
    • input 타입은 한 번에 하나의 행을 입력할 수 있기에, 여러 행을 입력하고자 할 경우에는 textarea를 이용한다.
    • php에서 받고자 할 경우에는 똑같이 받을 수 있겠지만 개행 문자, 즉 엔터를 입력받을 경우에는 br로 바꿔줘야 하기 때문에 nl2br을 이용해 주면 된다.
    • (참고출처) https://devjhs.tistory.com/534
    ❇️ nl2br (php)
    • 이 함수는 문자열 중 "\n" 을 "<br>" 로 변환한다결과값서울은 우리집에서 멀다.
    • (참고출처)https://b.redinfo.co.kr/50
    • 한국의 수도는 서울이다.
    • <?php $string="한국의 수도는 서울이다.\\n 서울은 우리집에서 멀다."; $nl2br=nl2br($string); echo $nl2br; ?>
  • (참고출처) https://itskeleton.tistory.com/entry/ITSkeleton-HTML-DropDownList-사용하기

 

 

html 파일 생성하기 (GET 방식)

<form action="2-2.php" method="get">
  가로: <input type="text" name="width"><br>
  세로: <input type="text" name="hieght"><br>
  <input type=submit value="확인">
</form>
  • 파일명.html로 저장해야 한다.

⇒ 결과물

 

 

💡 해당 페이지에 값을 넣으면

  • 다음과 같이 값이 주소에 들어난다 ⇒ 보안에 취약

 

 

✅ php 파일 만들어 html 파일과 연결하기

<?php
$w = $_GET[width]; // 입력된 width 값을 $w 변수에 넣음
$h = $_GET[height]; // 입력된 height 값을 $h 변수에 넣음
echo "width로 전달받은 값이 {$w}이다.<br>";
echo "height로 전달받은 값이 {$h}이다.<br>";
?>

⇒ 결과물

 

 

html 파일 (POST 방식) & PHP 파일 생성하여 연결하기

  • 2개의 파일 모두 파일형식은 ‘모든파일’로 설정하여 저장한다.
<form action="2-4.php" method="post">
가로 : <input type="text" name="width"><br>
세로 : <input type="text" name="height"><br>
<input type=submit value="확인">
</form>

⇒ html 파일 (ex. 2-3.html)

<?php
$w = $_POST[width];
$h = $_POST[height];
echo "width라는 이름으로 전달받은 값은 {$w}이다.<br>";
echo "height라는 이름으로 전달받은 값은 {$h}이다.<br>";
?>

⇒ php 파일 (ex. 2-4.php)

⇒ 결과물

  • abc.html (form) → xyz.php (DB) 이런 식으로 할 수 있다. 입력한 값이 MySQL에 넣어 데이터 값을 출력하는 메커니즘을 이해할 것.

 

 

🔎 연산자

: 기본적으로 PHP 문법은 C나 Java 언어의 문법과 매우 비슷하며 연산자도 그러하다.

  • 산술 연산자: 사칙연산에서의 +, -, *, / 그리고 나머지 %(10%3은 1)를 사용한다. ⇒ PHP는 데이터형에 크게 구애받지 않아서(cast가 불필요하다) 정수 나눗셈을 해도 실수로 나올 수 있다.
  • 문자열 연산자: 두 문자열을 연결하는 ****. 연산자(dot 연산자)를 사용한다.
    $str_01 = "PHP 수업";
    $str_02 = "에 오신것을 환영합니다!";
    
    echo "두 문자열을 합친 문자열은 '".($str_01.$str_02)."'입니다.<br>";
    
    echo $str_01, $str_02;
    
    (참고출처) http://www.tcpschool.com/php/php_operator_etc
  • 예시
  • 비트 연산자: 숫자가 아니라 비트 단위의 연산을 수행하는 =, +=, *=, /=, =, &=, !=, ^=, <<=, >>= 등을 사용한다. 비트 연산자(bitwise operator)
    • 비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다.
    • 또한, 비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용합니다.
& 대응되는 비트가 모두 1이면 1을 반환함. (비트 AND 연산)
| 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산)
^ 대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산)
~ 비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산)
<< 지정한 수만큼 비트를 전부 왼쪽으로 이동시킴. (left shift 연산)
>> 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴. (right shift 연산)

(참고출처) http://www.tcpschool.com/php/php_operator_bitwise

  • a = a + 3 ⇒ a += 3 해주면 CPU가 더 빠르게 연산한다.
  • 증감 연산자: 변수의 값을 하나씩 증가/ 감소시키는 ++, --를 사용한다.
  • 관계 연산자: >, >=, <, <=, ==, !=이고
  • 논리 연산자: &&(and), ||(or), !(not)이다. 관계 연산자, 논리연산자는 if 조건문이나 while 반복문에서 사용되는 경우가 대부분이다.
    • 논리 연산자는 논리식을 판단하여, 참(true)과 거짓(false)을 반환합니다.
    • and, or, xor 연산자는 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽입니다.
    • ! 연산자는 피연산자가 단 하나뿐인 단항 연산자이며, 피연산자의 결합 방향은 오른쪽에서 왼쪽입니다. (ex. !A)논리 연산자 설명

 

 

✅ PHP 산술연산자 실습

<?php
echo 5 + 2;
echo "<br>";
echo 5 - 2;
echo "<br>";
echo 5 / 2;
echo "<br>";
echo 5 % 2;
echo "<br>";
?>

 

 

✅ 비만도 계산 실습

<form action="2-7.php" method="post">
키(cm)     : <input type="text" name="height"><br>
몸무게(kg) : <input type="text" name="weight"<br>
<input type=submit value="확인">
</form>

⇒ html 파일

<?php
$h = $_POST[height];
$w = $_POST[weight];

$sw = ($h - 100) * 0.9;
$fd = ($w / $sw) * 100;

echo "키가 {$h}cm일 때, 표준체중은 {$sw}kg이므로, <br>";
echo "당신의 비만도는 {$fd}입니다.<br>";
?>

⇒ php 파일

 

⇒ 결과물

 

 

🔎 Cache(=hermit)

  • 웹 브라우즈가 이전에 실행했었던 정보를 저장함, 이를 cookies 라고 한다.

'웹 개발 > PHP' 카테고리의 다른 글

PHP와 웹 프로그래밍 기초 개념  (0) 2022.06.29
가상머신 내 Window7과 APM 설치  (0) 2022.06.29