일단 해보는 코딩/PHP

[PHP] 기본개념 및 연산자

eun_zoey2 2022. 5. 24. 09:38
728x90



PHP는 웹 사이트에서 작동되는 웹 관리 프로그래밍 언어이다.

  PHP 소개
  PHP는 ASP(MS 서버), JSP(Java 서버: for mobile) 등과 같이 웹 프로그래밍을 위한 언어로써 누구나 무료로 사용할 수 있으며 실행 속도가 빠르고, C 언어와 유사한 문법체계를 가지고 있어서 현재까지도 널리 사용된다. 
  PHP는 HyPertext Pro-processor의 약자로써 '단어의 정의에 다시 그 단어가 들어가는 재귀적인 형태'로 되어 있다. 1994년 만든 이래 계속 버전이 올라가고 있는데 PHP 5.0대를 사용하면 무리가 없다.
  
  웹 프로그래밍
  웹 페이지를 기술하는데 사용되는 기본적인 언어는 HTML이다. 하지만 HTML만으로는 항상 똑같은 내용을 보여주는 정적인 페이지여서 방문자 카운터나 게시판과 같이 상황에 따라 내용이 동적으로 변하는 페이지를 만들 수 없다. 
  이런 문제를 해결하기 위해서 웹 서버에 페이지 요청이 올 때마다 지정된 동작을 하고 웹 페이지에 표시될 내용을 동적으로 생성하는 프로그램을 작성시키는데 이것을 웹 프로그램이라고 한다. 여기에 사용되는 프로그래밍 언어를 웹 프로그램이라고 하며 ASP, PHP, JSP 등이 있다.

  HTML로 작성된 웹 프로그램은 
① 사용자가 웹 브라우저의 주소창에 URL(웹 주소)을 입력하고 엔터하면, 웹 브라우저는 URL에서 서버의 주소 부분과 서버  에게 요청할 문서의 이름을 분리해 낸다. 
=>예를 들어 URL이 http://php.net/a.html이면 웹 서버 주소 URL은 php.net이고 요청하는 문서는 a.html이다.
② 웹 브라우저는 인터넷을 통해서 php.net 서버에게 a.html 문서를 꺼내 달라고 요청한다.
③ 이 요청은 웹 서버 컴퓨터의 웹 서버 소프트웨어가 수신해서 요청된 a.html HTML 문서를 꺼내서 인터넷을 통해서 요청  한 클라이언트에게 전송한다. 
④ 원하는 대로 a.html을 수신한 클라이언트 웹 브라우저는 이 HTML 문서를 해석해서 화면에 출력한다.

  PHP 등의 언어로 작성된 웹 프로그램이 처리되는 과정도 이와 유사한데 단지 프로그램이 실행되는 단계만 추가될 뿐이다. 
① 사용자가 웹 브라우저의 주소창에 URL을 입력하고 엔터하면, 웹 브라우저는 URL에서 서버의 주소 부분과 서버에게 요청할 문서의 이름을 분리해 낸다. 예를 들어 URL이 http:// php.net/a.php이면 웹 서버 주소 URL은 php.net이고 요청하는 문서는 a.php이다.
② 웹 브라우저는 인터넷을 통해서 php.net 서버에게 a.php 문서를 꺼내 달라고 요청한다.
③ 이 요청은 웹 서버 컴퓨터의 웹 서버 소프트웨어가 수신해서 요청된 문서가 HTML이 아니라 PHP이므로 웹 서버 소프트웨어는 이 요청을 직접 처리하지 않고 PHP 엔진에게 전달한다. 
④ 요청을 받은 PHP 엔진은 a.php 파일을 찾아서 실행한다.
 

a.php 파일의 내용이
<?php 
  echo "안녕?";
?> 이라면 화면에 "안녕?"이라는 문자열을 찍으라는 명령이므로 html 문서에 "안녕?"이라는 문자열을 적은 것과 마찬가지의 효과가 된다. 웹 프로그램이 실행되면 적혀있는 PHP 소스 코드가 모두 지워지고 대신 그 자리에 실행 결과만 남아서 HTML 속에 결과만 추가된다. 따라서 <?php부터 ~ ?>까지의 모든 내용이 지워지고 그 자리에 echo의 실행 결과로써 "안녕?"이라는 문자열만 남아있는 HTML 문서가 얻어진다. 그리고 이것이 웹 서버에 전달되는 것이다. 
==>웹 브라우저는 HTML만 이해한다. 따라서 PHP code block, CSS code block, Java Script code blok 등이    실행되어 결과가 모두 HTML 문서 속으로 들어가서 웹 브라우저가 띄우게 된다.

a.php 파일에 
<html>
  <body>
    <?php  
      echo "Hello"; <- 이 세 줄은 실행되어 결과만 html 파일에 남는다. PHP~는 html에 남지 않는다
    ?>                 css, javascript도 이런 식으로 처리된다. 
  </body>
</html>
=>다음처럼 바뀐다.
<html>
  <body>
    "Hello";                 
  </body>
</html>

  ASP, JSP, 그리고 PHP 
  웹 프로그래밍에서 가장 잘 알려진 것은 ASP, JSP 그리고 PHP 정도인데 ASP(Active Server Page)는 일반 응용 프로그래밍 언어인 BASIC을 기반으로 만들어진 엡 프로그래밍 언어이다.
▪ ASP는 IIS(Internet Information Service)라는 MS 웹 서버에서만 이용될 수 있는데 IIS는 MS Windows에서만 작동된다. 따라서 ASP는 Windows 용 서버에서만 사용 가능하다. 최근에는 ASP로 새롭게 웹 사이트를 구축하는 일은 매우 드물고 ASP의 업그레이든 된 버전인 ASP.NET가 주로 사용되고 있다. ASP는 웹 프로그래밍 구동기술(또는 플랫폼)의 이름이면서 그 환경에서 동작하는 프로그래밍 언어이기도 하다. ASP.NET는 플랫폼이다. 
  ASP.NET에서 프로그래밍 언어는 Visual Basic이나 C#을 사용할 수 있다.
▪ JSP는 Java 언어를 기반으로 해서 만들어진 웹 프로그래밍 언어인데 Java가 널리 사용되고 있고 다양한 Java 관련 기술들이 있다는 장점 때문에 많은 웹 사이트들이 JSP로 구축되고 있다. 현재 국내에서도 새롭게 웹 사이트를 구축할 때 가장 많이 사용되는 웹 프로그래밍 언어이다.
▪ PHP는 C 언어를 기반으로 해서 만들어진 웹 프로그래밍 언어로써 다양한 하드웨어와 운영체제에서 사용할 수 있고 실행 속도도 빠른 편이다. JSP가 나타나기 전까지는 가장 대중적인 웹 프로그래밍 언어였고 현재까지 중소 규모의 웹 사이트 구축에서는 많이 사용되고 있다.

  PHP의 특징은
∎ C 또는 Java 언어의 기본 문법과 매우 유사하다 : PHP는 C 언어로 만들어진 것으로 Java도 C 언어의 많은 부분을 가져온 것이다. C++의 객체 지향을 제외한 기본적인 문장 구조나 제어문의 구조가 C와 유사하다.
∎ 무료로 사용할 수 있다 : PHP를 구동하는 PHP 엔진이 오픈소스여서 누구나 사용할 수 있다. 
∎ 구축된 웹 사이트의 동작 속도가 빠르다 : 성능이 좋은 편이어서 접속자가 많아도 사이트 운영에 큰 문제가 없다.
∎ PHP 엔진은 플랫폼 독립적이다 : Linux/UNIX, 그리고 MS Widows도 지원하므로 어느 플랫폼에서나 사용될 수 있다 등이다.  

=>C:/APMSetup/htdocs 아래에 홈피를 작성해서 넣으면 나만의 홈피가 나온다.
  로그인 한다면 root(사용자_명), apmsetup(패스워드)으로 들어가면 된다.
PHP는 http://127.0.0.1/?page==phpinfo 
phpMyAdmin은 http://127.0.0.1/myadmin으로 가면 된다. 화면에 보이는대로 클릭하면 듫어가 진다.

<?php ## start PHP
  $a = 3; ## declare variable a with $ sign, and value 3 goes into variable
  $b = 5; ## Not like C and Java, valiable can be used with its declaration 
  $c = $a + $b;
  echo "$a plus $b equals $c<br>";
?>

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

모든 PHP 프로그램이 꼭 HTML 파일의 완전한 형태(<html>, <head>, <body>,,,,)를 가질 필요는 없다. 

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

  echo 명령어를 이용한 출력
  PHP는 웹 프로그래밍 언어이기 때문에 출력 결과가 웹브라우저에 표시된다. 
출력에 주로 사용되는 도구가 echo이다.
a) echo 뒤에 숫자나 계산식을 쓸 수 있다. 
=>숫자는 그대로 써서 echo 뒤에 15를 적으면 그대로 15로 나오고, "8 + 7" 하면 계산해서 문자열 취급되어서 15가 아니라 8 + 7로 보인다. 
b) <br>은 HTML 태그로써 줄 바꿈이다. 
c) 문자열을 출력할 때 " "를 사용하고 
d) # 기호와 같은 특수문자를 출력한다면 \ 뒤에 \#식으로 써주면 된다. 
e) $는 PHP의 변수_명을 표시한다. 
f) 예약어(echo, get, put, ....)는 대소문자를 구분하지 않지만 변수_명과 함수_명은 대소문자를 구분한다.
i) 연달아 나오는 공백이나 개행 문자(다음 줄로 넘김)는 하나의 공백으로 처리하며, 특히 문자열의 앞에 나오는 공백 문자들은 모두 무시된다. 
=>웹브라우저에서 공백을 제대로 표시하려면 공백마다 HTML 코드인
&nbsp;을 넣어주면 된다.
j) echo 문장에 적어주는 문자(어구)는 여러 줄에 걸쳐 있어도 하나의 문자열로 해석되어 출력된다. 


"의 내용이 모두 한 줄이 된다.

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

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

  값을 입력받는 방법
  프로그래밍에서는 사용자로부터 값을 입력받는 것이 필수적이다. C에서는 scanf() 함수를 사용해서 콘솔에서 직접 입력받을 수 있는데 PHP는 웹에서 동작하므로 HTML의 <form> 태그를 사용해서 구성된 입력 폼을 통해서 값을 입력받아야 하고, 입력된 값을 확인(submit) 버튼을 누르면 HTML 페이지가 전환될 때 PHP 프로그램으로 값이 전달된다. 
===>이런 복잡함 때문에 CSS와 같은 것이 필요해진다!!!
=>값을 입력받는 형식은 
<form action="이동할_PHP_페이지" method="POST(or GET)_전송방식">
  입력_콘트롤_태그들 
  ......
  <input type=submit value="확인(or OK)">
</form>인 HTML 폼이다. 여기서 이 html 폼 파일과 실제 값을 입력받아서 처리해주는 php 파일이 연동되어져야 하므로 보통 같은 디렉터리 안에 두 파일이 있어야 한다.
  여기서
▪ action 속성에는 확인 버튼을 눌렀을 때 이동할 웹 페이지의 URL(or 이동할_페이지_이름)을 써주는데 이동할 파일이 a.php라면 action="a.php"식으로 해주면 된다. 
▪  mehtod 속성은 데이터를 넘겨주는 방식을 적어주는데 GET와 POST 두 가지 방식이 있다. POST(값이 전달될 때 사용자의 눈에 보이지 않고)나 GET(값이 전달될 때 웹브라우저의 주소_창에 표시된다) 중 하나를 적어주면 된다.
▪ 입력_컨트롤_태그는 <form> 태그 내부에서 사용되는데 text box, radio button, dropdown list, check box 등을 화면에 표시해주는 <input>, <select>, <textarea> 태그들을 써주면 된다. 
▪ submit 버튼은 입력_컨트롤_태그의 여러 옵션들과 마찬가지로 <input> 태그를 통해서 입력된 값을 지정된 페이지로 전해주는 기능을 한다.

  연산자 
  기본적으로 PHP 문법은 C나 Java 언어의 문법과 매우 비슷하며 연산자도 그러하다.
∎ 산술 연산자 : 사칙연산에서의 +, -, *, /, 그리고 나머지 %(10%3은 1)를 사용한다.
=>PHP는 데이터형에 크게 구애받지 않아서(cast가 불필요) 정수 나눗셈을 해도 실수로 나올 수 있다(9/3=3.0). 
∎ 문자열 연산자 : 두 문자열을 연결하는 . 연산자(dot 연산자)를 사용한다.
∎ 비트 연산자 : 숫자가 아니라 비트 단위의 연산을 수행하는 =, +=, *=, /=, %=, =, &=, !=, ^=, <<=, >>= 등을 사용한다. a = a + 3 => a += 3 해주면 CPU가 더 빠르게 연산한다. 
∎ 증감 연산자 : 변수의 값을 하나씩 증가/감소시키는 ++, --를 사용한다.
∎ 관계 연산자 : >, >=, <, <=, ==, != 이고 
∎ 논리 연산자 : &&(and), ||(or), !(not) 이다. 관계연산자, 논리연산자는 if 조건문이나 while 반복문에서 사용되는 경우가 대부분이다. 










'일단 해보는 코딩 > PHP' 카테고리의 다른 글

[PHP] 무슨 수업인지 기억이 안나는데...  (0) 2022.06.01
[PHP] 함수활용  (0) 2022.06.01