본 게시글은 유튜브 생활코딩 온라인강의를 시청한 후 학습한 정보를 기록하는 목적의 게시글입니다.
생각의 흐름에 따라 작성된 게시글입니다. 가독성이 떨어질 수 있습니다.
생활코딩 WEP3 PHP & MySQL을 수강하기 위한 선수과목인
WEB2 - PHP와 DATABASE2 - MySQL에 대한 수강 기록입니다.
수강 일정은 야학의 수강계획표에 따릅니다.
#0.
제어문 중 조건문을 PHP에서 어떻게 사용하는지 알아 보자.
#1.
조건문을 배우기에 앞서서 Boolean과 비교연산자에 대해서 알아보는 시간입니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Comparison Operators & Boolean data type </h1>
<h2>1==1</h2>
<?php
var_dump(1==1);
?>
<h2>1>1</h2>
<?php
var_dump(1>1);
?>
<h2>1>=1</h2>
<?php
var_dump(1>=1);
?>
</body>
</html>
Boolean과 비교 연산자에 대하여 알고 있다면, 이번 강의는 넘어가도 좋을 것 같다.
다만, 비교 연산자의 경우엔 언어마다 정의가 다르니
(외울 필요는 없다고 생각하지만) 잠깐 체크하고 넘어가도록 하자.
#2.
PHP의 조건문 ( if , else , elseif/else if)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Conditional</h1>
<h2>if</h2>
<?php
echo '1<br>';
if(false) {
echo '2-1<br>';
} else {
echo '2-2<br>';
}
echo '3<br>';
?>
</body>
</html>
마찬가지로 기본적인 조건문의 형식에 대하여 알고 있다면, 이번 강의 역시 넘어가도 좋을 것 같다.
다른 언어들의 조건문과 PHP의 조건문은 거의 같다.
#3.
저번 시간(Day4)에 나타난 에러로 예습한 '아이디 값이 없는 경우' 를 이번 시간에 학습하고자 한다.
(사실 그럴 것 같았지만.. 에러창이 찝찝해서 구글링으로 이미 해결했었다.)
지금 내가 짠 코드와 어떤 다른 방법으로 해결하는지 영상을 통해 복습해보도록 하자.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1><a href="/index.php">WEB</a><h1>
<ol>
<li><a href="index.php?id=HTML">HTML</a></li>
<li><a href="index.php?id=CSS">CSS</a></li>
<li><a href="index.php?id=JavaScript">JavaScript</a></li>
</ol>
<h2>
<?php
$value = isset($_GET['id']) ? $_GET['id'] : '';
echo $value;
?>
</h2>
<?php
if($value){
echo file_get_contents("data/".$value);
}
?>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1><a href="index.php">WEB</a></h1>
<ol>
<li><a href="index.php?id=HTML">HTML</a></li>
<li><a href="index.php?id=CSS">CSS</a></li>
<li><a href="index.php?id=JavaScript">JavaScript</a></li>
</ol>
<h2>
<?php
if(isset($_GET['id'])){
echo $_GET['id'];
} else {
echo "Welcome";
}
?>
</h2>
<?php
if(isset($_GET['id'])){
echo file_get_contents("data/".$_GET['id']);
} else {
echo "Hello, PHP";
}
?>
</body>
</html>
가정문을 사용하는 형식이 조금 틀리긴 하지만 비슷한 방법으로 이를 해결했다.
여담이지만 내가 사용한 방식은 php에서 Ternary Operator라고 불린다.
PHP의 삼항 연산자 (ctrl+f : "Ternary Operator")
추가적인 설명이 필요하다면 이 곳이 잘 정리해놓은 것 같다.
<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
// The above is identical to this if/else statement
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
?>
`A` ? `B` : `C`
의 형태가 있을 때, `A`가 참이라면 `B`가 반환되고, 거짓이라면 `C`가 반환된다.
`B`를 생략한 `A1` ?: `C` 의 형태로 사용할 수 있는데 ,
이 경우는 `A`가 참이라면 `A`, 거짓이라면 `C`가 반환된다.
<?php
// on first glance, the following appears to output 'true'
echo (true?'true':false?'t':'f');
// however, the actual output of the above is 't' prior to PHP 8.0.0
// this is because ternary expressions are evaluated from left to right
// the following is a more obvious version of the same code as above
echo ((true ? 'true' : false) ? 't' : 'f');
// here, one can see that the first expression is evaluated to 'true', which
// in turn evaluates to (bool)true, thus returning the true branch of the
// second ternary expression.
?>
위의 설명처럼 삼중연산자는 중첩되어 사용 할 경우 PHP에서 그 성능을 보장할 수가 없단 단점이 있다.
따라서, 다시 생활코딩에서 강의한 코드로 돌아가도록 하겠다.
'오픈튜토리얼스 > 생활코딩 : Web3 - PHP&MySQL' 카테고리의 다른 글
[생활코딩|MySQL Day5] 관계형 데이터베이스의 필요성 / 테이블 분리하기 / 관계형 데이터베이스의 꽃 JOIN (0) | 2020.11.18 |
---|---|
[생활코딩|PHP Day6] PHP의 반복문 예고 / PHP의 반복문 형식 / PHP 배열의 형식 / PHP의 반복문과 배열의 활용 (0) | 2020.11.16 |
[생활코딩|MySQL Day4] MySQL의 CRUD / SQL의 INSERT · SELECT · UPDATE · DELETE 구문 / 수업의 정상 (0) | 2020.11.12 |
[생활코딩|PHP Day4] PHP 함수의 사용 / PHP 제어문 예고 (0) | 2020.11.12 |
[생활코딩|MySQL Day3] SQL과 테이블 구조 / MySQL 테이블의 생성 (0) | 2020.11.12 |
최근댓글