본문 바로가기
PHP/생활코딩

5/23(2) 생활코딩

by SKim입니다 2020. 5. 23.

* 오늘의 진도

 PHP

  조건문

 

11. 조건문 - 조건문의 문법

조건문: 주어진 조건에 따라서 에플리케이션을 다르게 동작하도록 하는 것

 컴퓨터를 좀 더 똑똑하게 하는 것

 

조건문의 키워드: if

 

( ) 안에는 조건이 와야 한다.

- 여기에 올 수 있는 값은 Boolean이다.

 즉, true

 

( ) 안에 있는 값(=조건)이 true(참)일 때만

{ } 사이에 있는 코드가 실행된다.

 

 

 

두번째가 실행되면 모든 조건문이 끝나게 돼서,

그 뒤에 따라오는 것들은 아무런 의미를 갖지 못하게 된다.

 

 

11. 조건문 - 변수와 비교연산자 그리고 조건문

HTML 파일

PHP 파일

HTML 파일의 text input에 k8805를 입력하면

PHP 파일의 $_GET['id'] 부분이 k8805가 될 것이다.

 

그러면 k8805와 egoing이 같지 않으므로

if 뒤의 ( ) 안이 false가 된다.

그러면 else 부분이 동자한다.

 

즉, 사용자가 입력한 정보가

유효한지 유효하지 않은지를 구분할 때 조건문이 사용된다.

 

* 조건문의 중첩

※ 비밀번호를 전송할 때는

type을 text가 아니라 password라고 적으면

타이핑할 때 정보가 화면상에 표시되지 않고,

copy & paste도 안 된다.

 

 

11. 조건문 - 논리 연산자

논리 연산자 - 조건문을 좀 더 간결하고 다양한 방법으로 구사할 수 있도록 도와준다.

 

* and 연산자 -  좌항 우항 모두가 true일 때만 ( ) 안이 true가 된다.

 

 

 

&& = and

 

 

 

* or 연산자 -  둘 중에 하나라도 true면 전체가 true가 된다.

 

 

 

 

 

 

* ! - Boolean 값을 역전시킨다.

 

 

11. 조건문 - Boolean

Boolean은 html, css같은 것을 제외하고 모든 언어에 등장하는 공통적인 요소이다.

그런데 PHP만의 특성이 있다.

 

boolean의 대체제

false = 숫자 0

true = 0이 아닌 숫자, 값이 없는 배열, 빈 문자열, NULL, 문자 0

 

 

 

php 공식 홈페이지

https://www.php.net/

 

PHP: Hypertext Preprocessor

The PHP development team announces the immediate availability of PHP 7.2.0 Release Candidate 1. This release is the first Release Candidate for 7.2.0. All users of PHP are encouraged to test this version carefully, and report any bugs and incompatibilities

www.php.net

php는 상황에 따라서 자동으로 데이터의 형식을 변환해주는 특성을 갖고 있다.

→ 어떤 점에서는 굉장히 편리하지만,

 어떤 점에서는 예측 불가능하게 되거나, 많은 것을 기억해야하는 문제가 생긴다.

 

https://www.php.net/manual/en/types.comparisons.php

 

PHP: PHP type comparison tables - Manual

Some function to write out your own comparisson table in tsv format. Can be easily modified to add more testcases and/or binary functions. It will test all comparables against each other with all functions. '==',        'ne' => '!=',        'gt' =>

www.php.net

 

 

 

gettype($x) / empty($x) / is_null($x) / isset($x) / boolean: if($x)의 리턴값 표

 

이 표가 중요한 이유는?

 PHP에서 $x라는 변수 안에 담겨있는 데이터가 비어있는지 여부를 체크하고 싶을 때

 일반적으로 empty(), is_null(), isset()과 같은 것을 사용한다.

 그래서 이 각각의 것들이 거의 비슷한 의미를 갖는데,

 아주 디테일하게 들어가면 데이터 형식에 따라서 리턴하는 값이 달라지기 때문에,

 그 차이를 모르면 시스템 오류가 발생할 수 있다.

 

① empty()라는 함수는, 이 함수의 인자로 들어와있는 값이 비어있는지를 체크하는데,

 만약 그 값이 비어있다면 true를 리턴하고,

 값이 비어있지 않다면 false를 리턴한다.

 

② is_null()은 그 인자로 전달된 값이 데이터가 없는지 체크한다.

 데이터를 정의하지 않는다면 true가 되는 것이고,

 그렇지 않다면 false가 되는 것이다.

 

③ isset()은 예를 들어 isset()의 인자로 $x가 있을 때,

 $x라는 변수가 위에서 선언된 적이 없거나, 아무런 값도 전혀 할당하지 않았다면,

 결과는 false가 된다.

 

첫째줄) $x의 값이 빈 문자열일 때,

 대충 비슷하게 사용하는 이 함수들이 아주 미묘한 결과의 차이를 보여준다.

 ① empty() - 데이터가 없다는 뜻에서 true를 리턴한다.

 ② is_null() - null이 아니라는 뜻에서 false를 리턴한다.

 ③ isset() - 값이 세팅되어 있다는 뜻에서 true를 리턴한다.

 

==는 loose comparison으로 대충 같냐, 대충 비교한다는 뜻이다.

 

 

'PHP > 생활코딩' 카테고리의 다른 글

5/24 생활코딩  (0) 2020.05.24
5/23(3) 생활코딩  (0) 2020.05.23
5/23 생활코딩  (0) 2020.05.23
5/22(2) 생활코딩  (0) 2020.05.22
5/22 생활코딩  (0) 2020.05.22

댓글