생활코딩 PHP② (PHP의 반복문 ~ PHP의 함수의 활용)

krystal·2023년 3월 16일
0

생활코딩

목록 보기
5/5

강의 출처

반복문

반복문은 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>



PHP의 반복문과 배열의 활용

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;
        }
      ?>
  1. data 폴더에 있는 파일을 list변수에 배열의 형태로 담아줌
  2. list에 있는 파일들을 while문을 통해 출력할 수 있도록 한다.
  3. 이 때 조건문을 활용하여 '.'이나 '..' 부분은 제외한다.
  4. 역 슬래시를 활용하여 <a href= 이 부분 뒤에 따옴표를 문자열 ""자체로 볼 수 있도록 한다.

이렇게 하면 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>
profile
https://source-coding.tistory.com/

0개의 댓글