반응형

최근에 이직한 회사에서 운영중인 메인 서비스가 PHP로 되어있다. 입사 전에 OReilly에서 출판한 책 Learning PHP을 도서관에서 대여해서 가볍게 훑었다. 기존에 알고 있었던 언어들과 차이점, PHP만의 특징과 복기해야할(?)만한 것들 위주로 정리했다.

 

1. 오리엔테이션과 첫걸음

  • 함수의 대소문자 구별이 없으나 변수는 대소문자 구분 있
  • Here Document(Here 문서) <<<HTML, HTML
  • PHP 영역 선언 : <php? , ?> 의 조합. 약어로 를 사용할 수 있으나, 이를 인식하지 못하는 서버가 있을 수 있으므로 축약 지양
  • 주석 스타일 : #, //, /**/
  • php는 서버 사이드에서 동작하는 스크립트 언어

 

2. 데이터: 텍스트와 숫자 다루기

  • php 문자열의 크기는 컴퓨터 메모리 크기로 제한
  • php 문자열은 글자가 아니라 바이트의 나열 (20장 내용 참고)
  • 작은따옴표(')와 큰따옴표(") 차이 : 큰따옴표 내 변수명은 값으로 대치됨. 또한 \n, 8진수, 16진수와 같은 표현 가능.
  • here 문서(<<<)의 시작은 알파벳이나 밑줄(_)만 가능
  • 마침표(.)는 두 문자열 연결 연산자로 사용됨
  • here 문서(큰따옴표 동작과 유사)와 달리 now 문서(작은따옴표 동작과 유사)는 변수 치환 기능 없음
  • 문자열 내 변수 삽입 시 명확하게 영역을 구분짓기 위해 중괄호({}) 사용. ex) "안녕? 나는 {$name}이야.

 

3. 로직: 조건 판단과 반복 수행

  • 논리식 거짓 : false, null, 0, 0.0, ''(공백), '0'(문자열 0), 빈 배열
  • 부동소수점 비교 시 허용 오차 범위 (0.00001) 내 차이는 동등하다고 판단함 (abs() 활용)
  • 비교 연산자(<, >) : 숫자는 문자열이어도 숫자 비교, 그 외는 문자 사전순으로 비교
  • strcmp() : 왼쪽 값이 작으면 음수, 동등하면 0, 크면 양수 반환, 어떤 문자열이든 사전 순서대로 크기 비교(숫자 캐스팅 X)
  • 우주선 연산자(<=>) : 왼쪽 값이 작으면 음수, 동등하면 0, 크면 양수 반환, 숫자 문자열은 숫자로 비교
  • 문자열과 숫자의 비교 ( 비교 연산자(<, >), strcmp(), 우주선 연산자(<=>) )
    구분 비교연산자(<,>) strcmp() 우주선연산자(<=>) (php 7+) 결과값
    문자 vs 문자 "x12345" < "x567" strcmp("x12345","x567") < 0 "x12345" <=> "x567" < 0 true
    문자열 숫자 vs 문자열 숫자 "12345" > "567" strcmp("12345","657") < 0 "12345" <=> "567" > 0 true
    혼용 vs 혼용 "6 pack" > "55 card" strcmp("6 pack","55 card") > 0 "6 pack" <=> "55 card" > 0 true
    혼용 vs 숫자 "6 pack" < 55 strcmp("6 pack", 55) > 0 "6 pack" <=> 55 < 0 true
  • 알파벳 외 문자를 크기 비교할 경우, 인코딩에 따라 선후 관계가 변할 수 있으므로 지양
  • php 문자열은 바이트의 나열이라는 것을 명심. 20.2절에 다양한 문자열 집합을 비교하고 정렬할 수 있는 Collator 클래스 안내
반응형

'Programming > PHP' 카테고리의 다른 글

[책] Learning PHP 챕터 7~10 요약  (0) 2021.07.04
[책] Learning PHP 챕터 4~6 요약  (0) 2021.06.30