반복문은 while문으로 알려주었음
while문의 형태는 c언어의 문법과 유사하다.
<?php
echo '1<br>';
$i = 0;
while($i < 3){
echo '2<br>';
$i = $i + 1;
}
echo '3<br>';
?>
▲ 변수 i값이 어떤지에 따라 반복문을 실행하는 코드
PHP에서의 배열 표현은 다음과 같다
$coworkers = array('egoing', 'leezche', 'duru', 'taeho');
coworkers 라는 이름의 변수는 egoing등의 요소를 가지고 있는 배열이다
배열에 있는 값을 가져오고싶을 경우
다른 언어의 분법처럼 $coworkders[1] 로 표현해주면 된다.
배열의 원소 개수를 나타내는 함수는 count()다
배열의 원소를 추가해주고 싶을 경우 array_push(원하는 배열, 추가하고슾ㄴ 원소)함수를 사용한다
(push라고 하니까 stack이 생각이 난다..)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Array</title>
</head>
<body>
<h1>Array</h1>
<?php
$coworkers = array('egoing', 'leezche', 'duru', 'taeho');
echo $coworkers[1].'<br>';
echo $coworkers[3].'<br>';
var_dump(count($coworkers));
array_push($coworkers, 'graphittie');
var_dump($coworkers);
?>
</body>
</html>
scandir() 함수는 입력값으로 첫번째 자리에 스캔하려는 디렉토리 값을 넣어준다.
출력은 배열이 되는 표 형식이다
./는 현재 디렉토리,
../는 부모 디렉토리를 나타낸다
사용한 코드와 실행결과는 다음과 같다.
<? php
$list = scandir('./data');
var_dum(%list);
?>
여기서 .과 ..이 나오는 이유는 scandir함수는 디렉토리 안에 있는 파일 목록을 보여주는데
현재 디렉토리를 의미하는 점 하나
부모 디렉토리를 의미하는 점 두개를 배열에 담아서 리턴해주는 형태이기 때문.
<?php
$list = scandir('./data');
$i = 0;
while($i < count($list)){
if($list[$i] != '.') {
if($list[$i] != '..') {
echo "<li><a href=\"index.php?id=$list[$i]\">$list[$i]</a></li>\n";
}
}
$i = $i + 1;
}
?>
이렇게 하면 data에 파일을 추가할 때마다 자동적으로 리스트에 추가가 되어 해당 내용물까지 볼 수 있는 링크가 생성된다.
함수를 만들 때 하나의 기능만을 담는다는 생각을 가지는 것이 좋다고 한다.
PHP에서의 함수 형태는 자바스크립트의 함수와 형태가 유사하다고 생각이 들었다.
예제 코드는 다음과 같다.
function basic(){
print("Lorem ipsum dolor1<br>");
print("Lorem ipsum dolor2<br>");
}
basic();
파라미터를 사용하는 경우는 다음과 같다.
function sum($left, $right){
print($left+$right);
print("<br>");
}
sum(2,4);
function sum2($left, $right){
return $left+$right;
}
print(sum2(2,4));
file_put_contents('result.txt', sum2(2,4));
결과값을 리턴하는 함수를 통해 출력을 해주며,
ile_put_contents 함수를 통해 리턴한 값을 result.txt라는 파일에 저장하도록 한다.
그동안 사용했던 예제코드들을 함수로 정리하여 나타내면 코드는 다음과 같다.
<?php
function print_title(){
if(isset($_GET['id'])){
echo $_GET['id'];
} else {
echo "Welcome";
}
}
function print_description(){
if(isset($_GET['id'])){
echo file_get_contents("data/".$_GET['id']);
} else {
echo "Hello, PHP";
}
}
function print_list(){
$list = scandir('./data');
$i = 0;
while($i < count($list)){
if($list[$i] != '.') {
if($list[$i] != '..') {
echo "<li><a href=\"index.php?id=$list[$i]\">$list[$i]</a></li>\n";
}
}
$i = $i + 1;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
<?php
print_title();
?>
</title>
</head>
<body>
<h1><a href="index.php">WEB</a></h1>
<ol>
<?php
print_list();
?>
</ol>
<h2>
<?php
print_title();
?>
</h2>
<?php
print_description();
?>
</body>
</html>