APM : Apache Web Server + PHP Web Programming Language + MySQL Database
=>PHP 프로그래밍을 하기 위해서는 웹 서버가 있어야 하고 데이터베이스 서버가 있어야 하기 때문에 이들을 모두 먼저
설치한 뒤 실행해야 하지만 APMSETUP.exe 윈도우즈용 프로그램을 설치하면 자동으로 웹과 데이터베이스 서버가 싷애되 므로 자연스럽게 PHP 프로그래밍에 전념할 수 있다.
웹 브라우저에서 작업을 수행하기 때문에 이를 UI(User Interface)라고 하는데 브라우저에서의 기본 틀은 정적인 HTML이다. 여기에 동적인 요소를 가미하기 위해서 html 코드 사이에 php, css, javascript, ...식으로 만든다.
jsp는 자바로 만든 서버측 웹 페이지이므로 클라이언트는 서버에 접속했을 때 이 페이지를 보게 된다.
=>java가 너무 무거우므로 모바일에서 가볍게 실행되도록 cotlin을 사용하기도 한다.
=>css, javascript, jquery 등을 이용하면 데스크탑 브라우저나 모바일 브라우저에서의 크기 등이 자동으로 조절된다.
비트 연산자 : 컴퓨터에서는 모든 데이터가 0과 1로 전송된다. A라는 문자는 ASCII 코x드에 의해서 65라는 숫자가 되면
이 숫자를 이진수로 변경해서 전송한다.
&(and), |(vertical bar/pipe: OR), ^(XOR: 01, 00, 10, 11에서 서로 다르면 1, 같으면 0), ~(NOT),
<< (Redirect: 좌측이동)
11100011 <<3 하면 좌측이동이 되어서 00011000식으로 된다. 원래 단어의 의미가 달라진다.
보통 프로그램은 위에서 아래로 순차적(절차적: Batch file)으로 코드를 실행하는 순차처리이지만
필요에 의해서 건너뛰기, 반복, 순서를 바꾸는 등으로 처리의 흐름을 바꾸어 줄 필요가 있을 때 제어문을 사용하면 된다.
제어문 - 분기문 - 조건 분기 : if, else, switch
- 무조건 분기 : break, continue
반복문 - while, for, do ~ while
IF ~ ELSE -
IF 문은 'if-조건'이 참일 때 실행되고, 거짓이면 ELSE 문이 실행된다.
조건절에서 관계연산자 a>b, a<b, a>=b, a<=b, a==b, a!=b 등을 사용한다.
===> a = 3(우측의 3인 값을 좌측의 a에 대입);
a == 3;(a는 3이다)
if 조건에는 ( ( A && B ) || (C) )식으로 A, B, C 조건을 걸 수 있다.
if가 여러 개 필요할 때에는
if
~~~~
elseif
~~~~~
elseif
~~~~
else
~~~ 식으로 해주면 된다.
윤년(reap year)은
년도가 4로 나누어 덜어지지만 100으로 나누어 떯어지지 않으면서 400으로 나누어 떨어지는
해 이다.
년도를 Browser 입력받고 윤년이면 x해는 reap year, 아니면 normal year라고 표시하시오
if ( ($year % 4 == 0 && $year % 100 != 0) || ($year % 400 == 0) )
성적을 입력받아서 90 이상은 A, 80~90은 B, 70~80은 C, 60~70은 D, 기타는 E로 하시오
if, elseif, elseif, elseif, else로 처리하시오.
$score = $_GET[score];
if ($score >= 90)
echo "Your grade is A";
elseif ($score >= 80)
/* elseif(($score >= 80) && ($score < 90)) 도 가능 */
echo "Your grade is B";
elseif ($score >= 70)
echo "Your grade is C";
elseif ($score >= 60)
echo "Your grade is D";
else
echo "Ooops, Sorry F";
?>
1) IF 문은 조건식이 참이면 실행하고 아니면 ELSE를 실행해서 처리를 끝내는데,
WHILE 문은 조건식이 참인 동안 계속 실행되게 된다. 조건식이 참이면 문장을 실행하고
다시 조건 검사로 되돌아가서 판단하고 참이면 실행하고, 거짓이면 다음 문장으로 넘어가는
구조이다. 여기서 무한 반복이 일어날 수 있다.
IF ~ ELSEIF ~ ELSEIF ~ ELSE ~ 구문이다.
2) WHILE 문
while 조건이 참인 동안 계속 실행되는 문이다.
1~10까지 합을 구하고, 곱을 구해서 보이시오.
합에서는 초기값이 0이고, 곱에서는 초기값이 1이다.
3) FOR 문
for ($i=1 ; $i <= 10; $i++)식으로 반복 조건을 준다.
1~100까지에서 10씩 증가해서 10, 20, ... 100으로 보이시오.
4) FOREACH 문
foreach 문장은 배열을 인자로 해서 요소를 반복시키는 반복문이다. 따라서 배열을 먼저 생성한 뒤 작업한다.
5) DO ~ WHILE 문
이 문은 반드시 한 번은 실행될 수 있는 구조이다. 먼저 do ~ 부분을 실행한 뒤 나중에 while 조건을 따져서 거짓일 때까지 실행된다.
1~99까지 화면에 출력은 do ~ while 문으로 작성하시오
6) BREAK & CONTINUE
While, DO ~ WHILE 같은 반복문은 무한 반복이 일어날 수 있어서 break와 continue와 같은 제어문으로 통제해 주어야 한다.
break 문은 반복문 실행을 즉시 멈추고 반복문을 나가고,
continue 문은 다시 조건 부분으로 가서 판단 한 뒤 거짓 조건이 될 때까지 실행을 계속한다.
for문과 if, break와 continue를 섞어서 1~10까지 출력하되 5는 빼고 출력시켜보시오.
7) SWITCH ~ CASE -
switch 문은 하나의 변수를 값에 따라서 서로 다른 내용으로 실행시키는 경우에 사용한다.
대부분 switch 문은 if ~ elsief ~ 문으로 변환할 수 있다.
switch 문 속의 case 문은 각각의 수행문 끝에 break;를 넣어서 해당 조건에 만족하는 행을 만나면 실행한 뒤 바로 switch 순환문 전체를 벗어나서 무한 순환을 막을 수 있다.
각 case에 해당되는 내용이 없을 때에는 if ~ else - 문에서처럼 맨 끝에 default - 문이 실행되게 된다.
<?php
$a = $_GET[a];
if ($a == 1)
echo "one";
elseif ($a == 2)
echo "two";
elseif ($a == 3)
echo "three";
else
echo "other";
?>
==>Switch 문으로 변환
<?php
$a = $_GET[a];
switch ($a) {
case 1 : echo "one";
break;
case 2 : echo "two";
break;
case 3 : echo "three";
break;
default : echo "other";
}
?>
배열
배열은 여러 개의 동일한 타입의 데이터를 하나의 변수로 묶은 것으로 보통 반복문과 함께 사용되어 대량의 자료를 다루기에 용이하다. array( .... )식으로 표현해준다. ( ... )에는 요소가 들어간다.
전체 배열을 묶어서 $a[]식으로 처리하는데 배열의 요소는 0부터 시작된다. $a[1], $a[3] 등은 하나의 요소를 추출한다. [] 안에는 상수, 변수, 문자열, 그리고 수식도 가능하다.
만일 첫 번째 학생의 수학점수가 있다면
$a0 = 75;
echo $a; 하고, 또 두 번째 학생의 점수가 있다면
$a1 = 82;
echo $a1; 식으로 처리한다면 ... 40명이 있다면 40개의 변수가 필요할 것이다.
==>이럴 때
$a[0] = 75;
$a[1] = 82;
$a[2] = 91;
$a[3] = 73;
$a[4] = 89; 식으로 하면 하나의 연속된 변수 $a 덩어리가 된다.
=>전체 묶음이 $a이고, 첫 번째 변수가 $a[0], 두 번째 변수가 $a[1], 세 번째 변수가 $a[2], ...식이 된다.
$a[1]을 배열의 원소(item)이라고 한다. [1]은 일종의 주소와 같은 역할을 하는데 흔히 인덱스(index)라고 부른다.
인덱스는 0부터 시작된다. $a[1]이나 $a[3]을 하나의 변수처럼 보면 된다.
그리고 echo $a[3] 하면 $a[] 배열의 4번째 원소 값을 화면에 출력해준다. [] 안에는 상수, 변수, 문자열, 그리고 수식도 가능하다.
'일단 해보는 코딩 > PHP' 카테고리의 다른 글
[PHP] 무슨 수업인지 기억이 안나는데... (0) | 2022.06.01 |
---|---|
[PHP] 기본개념 및 연산자 (0) | 2022.05.24 |