-
(6) WEB2-PHP-10.조건문 예고 - YouTube
url의 id 값이 없을 때는 home에 적당한 글을 넣고 id 값이 있다면 id 값에 따라 분류해 표현하는 페이지를 만들고 싶은 경우에 조건문을 사용할 수 있다.
(6) WEB2-PHP-11.Boolean과 비교 연산자 - YouTube
php의 data type을 살펴보자. 새로운 타입인 boolean에 대해 알아보자.
boolean은 true/ false 라는 두 개의 데이터로 이루어져있다. 비교연산자와 관련되어있다.
- var_dump는 입력값을 데이터타입까지 포함해서 출력해준다.
- var_dump에서는 산술연산 값도 포함해서 출력해준다.
- == 은 좌항과 우항의 값이 같은지 아닌지를 확인해준다.
(6) WEB2-PHP-12.조건문의 형식 - YouTube
조건문의 형식은
if (표현식)
문장 이다.
if 문은 ( ) 안의 값이 true 이면 { } 안의 코드가 실행된다. false 라면 코드가 실행되지 않는 특성을 가진다.
else가 있을 수 있다.
실행 흐름이 if 문의 값의 결과에 따라 제어되기 때문에 if 문을 제어문이라고도 한다.
(7) WEB2 PHP 13 조건문의활용 - YouTube
web에 링크를 걸고 web 클릭하면 깔끔하게 주소가 나오게 + welcome 이 출력되게 하자.
만약 id 값이 있다면 echo $_GET['id]가 실행되고 id 값이 없다면 echo "welcome";이 실행되게 하고 싶다.
- isset: 값의 유무에 따라 boolean( true/false)를 출력한다.
- unset: 값 지우기
isset을 이용해서 나타내보자.
if(isset($_GET['id'])) 에서 isset 값이 true 이면 id 값을 받고 isset 값이 false 이면 welcome이 출력된다.
(7) WEB2-PHP-14.반복문 예고 - YouTube
data 폴더에 php 추가하고 htdocs에도 php에 대해 써줘야 한다.
data 파일이 추가되면 php 파일이 알아서 html을 자동적으로 생성해주는 방법: 반복문 사용하기
- data 디렉토리에 있는 파일의 목록을 가져오라고 PHP에 요청한다.
- 파일의 목록 하나 하나를 li 와 a 태그를 이용해서 글목록을 만들어달라고 요청한다.
-> data 디렉토리에 컨텐츠를 추가하는 것에만 신경쓰면 된다.
(7) WEB2-PHP-15.반복문의 형식 - YouTube
반복문(loop)
- while (expr)
statement
- if (expr)
statement
expr과 statement의 차이: expr에는 값이 오는 것. statement에는 값만 오는 게 아니라 if 문 등이 온다.
while 문에서 expr자리에는 boolean data type이 온다.
if 문에서 boolean==true 이면 코드 실행하고 while 문에서 boolean==true이면 statement가 계속 실행되다가 false 이면 끝낸다.
실행 횟수를 정해주고 횟수가 다다르면 다음으로 넘어가는 코드를 작성해보자.
$i = $i + 1; 은 while 문이 실행될 때마다 i+1이 실행된다.
(7) WEB2-PHP-16.배열의 형식 - YouTube
처리해야 하는 데이터가 많아지자 복잡도를 낮추기 위해 정리해줘야 한다.
배열에는 data 가 들어간다. 배열에는 key와 값이 있음
- 배열 선언하는 방법
- 배열에서 데이터 꺼내는 방법
(인덱스는 0부터 시작한다.)
- 데이터 개수 찾는 방법- total count
- 배열에 값 제일 끝의 인덱스에 추가하기
php array에 들어가면 더 많은 내용을 알 수 있다.
(7) WEB2-PHP-17.1.반복문과 조건문의 활용 1 - YouTube
scandir() : 데이터라고 하는 디렉토리 안에 있는 파일 목록을 가져올 수 있고 그렇게 가져온 파일 목록은 scandir 배열에 담아 우리에게 준다.
- 서로 연관된 데이터를 담기 위해 배열을 사용한다.
- 입력값으로 문자와 데이터형식으로 디렉토리가 들어온다. 디렉토리는 스캔하려는 디렉토리를 적는다. tmp라는 경로를 입력한다. [ ] 안의 부분은 써도 안 써도 상관없다.
현재 디렉토리는 ./ 를 사용하고 부모 디렉토리는 ../ 를 사용한다.
페이지 소스 보기 (우클릭 후) 를 사용하면 더 쉽게 소스를 확인할 수 있다.
list 라는 변수에 담겨있는 값은 배열이고 원소가 7개이다. 원소는 각각 . , .. , CSS, HTML, JavaScript, MySQL, PHP 이다.
(7) WEB2-PHP-17.2.반복문과 조건문의 활용 2 - YouTube
배열에 담긴 원소를 반복해 꺼내오자. 꺼낸 것을 이용해 목록을 프로그래밍적으로 만들어내자
배열 list 에 담긴 값을 반복문 없이 써보자. 큰 따옴표 안에 $ 변수명을 작성하면 간단하게 쓸 수 있다.
5까지 해주면 MySQL도 나옴
. 과 .. 이 나오는데 .은 현재 디렉토리를, ..은 현재 디렉토리의 부모 디렉토리를 의미한다.
원하는 디렉토리의 파일과 현재 디렉토리를 의미하는 . 한 개와 부모 디렉토리를 의미하는 점 두 개를 배열에 담아 리턴해주는 함수가 scandir 이다.
위의 사진에서
echo "<li>$list[0]</li>\n";
echo "<li>$list[1]</li>\n";
echo "<li>$list[2]</li>\n";
echo "<li>$list[3]</li>\n";
echo "<li>$list[4]</li>\n";
부분을 반복문을 통해 나타내보자.
- 항목이 5개이기 때문에 제한 조건은 i<6이다.
여기에 GIT 이라는 새 항목을 추가하면 글목록이 바뀌긴 하는데 항목이 추가되지 않는다. 즉 data 파일들의 개수에 따라 while 문이 반복적으로 실행되는 횟수가 정적이다. 따라서 6을 scandir이 알려준 배열에 담긴 원소의 숫자로 바꾸어주자.
이 상태에서 GIT 항목을 삭제하면 파일의 숫자만큼 반복문이 실행되어 리스트에서 사라진다.
클릭했을 때 링크가 되도록 바꾸어주자. php에서도 큰따옴표는 문자가 끝나는 기호이다. 큰 따옴표가 문자임을 알려주기 위해 앞에 \을 사용하면 \직후에 나오는 코드를 그 코드가 갖고 있는 문법적인 기능을 무시하고 문자로 처리하도록 약속되어 있다.
(7) WEB2-PHP-17.3.반복문과 조건문의 활용 3 - YouTube
. 과 ..은 원하는 게 아니기 때문에 반복문을 실행하면서 . 이나 ..을 무시하게 해보자.
i의 값을 0부터 시작하고 scandir은 .과 ..을 먼저 알려준다. 따라서 $i=2부터 시작하면 사라진다.
그런데 scandir이 .과 ..을 준다고 확신하기 어려우기 때문에 위의 방법은 좋은 방법이 아니다.
while 문 안에서 list원소의 값이 . 이나 .. 이 아닌 경우에 코드가 실행되게 하면 된다.
- == 은 좌항과 우항의 값이 같으면 참인 비교연산자이다.
- !=은 좌항과 우항의 값이 다르면 참인 비교연산자이다.
. 만 무시하는 결과가 나온다. .. 도 없애주자.
(7) WEB2-PHP-18-함수 만들기 예고 - YouTube
php가 제공하는 함수를 사용하는, 즉 내장함수(scandir 같은 거)를 살펴봤다. 지금부터는 함수를 직접 만들어서 사용해보자.
if(isset($_GET['id'])){
echo $_GET['id'];
} else {
echo "Welcome";
}
?>
는 제목을 표현하는 코드이다. 쭉 나열되어있으니 해석할 때 조금 걸린다.
복잡도를 낮추기 위해 함수를 사용한다.
(7) WEB2-PHP-19.1.함수의 형식 1/3 - YouTube
함수 정의하는 방법
- function 함수명 을 사용하는데 function 은 약속된 기호이다.
- 함수명(); 이 나오면 함수를 실행시키려고 하는 것이다.
함수를 사용하면 수정이 쉽다.
$left, $right 는 parameter, 매개변수 라고 한다.
숫자 2와 4라는 구체적인 표현식을 argument라고 한다.
입력한 실제 값이 argument이고 그 값을 받아서 매개함수 안에서 사용되는 것을 parameter 라고 한다.