이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[PHP] PHP 정리 (1)

  • 2022.10.11 23:44
  • Programming Language/PHP
반응형

 

 

 

php는 script language. (js, python 처럼 컴파일 하지 않고 진행)

 

php는 Server Side Script language.

 

PHP : Hypertext Preprocessor // 재귀약자!

 

.php 확장자

 

외국에서는 php를 많이 사용한다.

 

<?php

 ~~ content ~~

?>

 

문법은 위와 같다. 대소문자를 구별하지 않는다. (변수는 구별함)

변수를 선언할 때도 자바스크립트처럼 타입을 따로 정의하지 않는다. ($color 처럼 $로 변수 선언) (Loosely Typed Language)

. 이 연결 연산자 (concat)

 

주석은 # 혹은 // / * */ 모두 사용 가능 

 

echo로 출력한다.

 

변수의 범위

 

1. local 

2. global

3. static

 

함수 안에서는 global scope 변수에 접근할 수 없음.

함수 안에서 정의된 local scope는 자바와 동일.

 

 

 

global 키워드로 밖에서 정의된 변수를 사용할 수 있음.

 

static은 자바와 동일. 어디서든 접근 가능한점도..

 

echo와 print 모두 출력.

echo는 리턴값이 없고 처리가 좀 더 빠름

print는 리턴값이 있고 파라미터를 하나 받음

 

 

 

 

print가 1을 반환한다. (world를 받기 때문)

 

 

데이터 타입

 

1. String

2. Integer

3. Float

4. boolean

5. Array

6. Object

7. NULL

 

자바스크립트와는 다르게 Number 타입으로 한 번에 다루지 않는다.

 

var_dump 함수를 통해 데이터 타입을 알 수 있음.

 

객체도 지원한다.

 

 

자바와 C++과 비슷한 형태를 가진다.

 

선언만 하고 초기화 해 주지 않으면 NULL이 들어간다.

 

 

String

 

strlen() : 길이 반환

str_word_count() : 몇 단어로 구성된지 반환

strrev() : 문자열 리버스

strpos() : 위치를 찾음 pos 는 position. 못 찾으면 false 반환

str_replace() : 특정 문자열 대체하기

 

이 외에도 여러 메서드가 있다.

 

is_int() : int면 true

 

infinite : 값의 범위를 초과하면 infinite로 표현

is_nan() : 숫자가 아니면 true

is_numeric() : "1345" 도 true

 

is_nan() 과 is_numeric의 차이는 true를 검사할 때 나타남.

is_numeric은 true도 숫자가 아닌걸로 판단. is_nan() 은 true를 숫자로 판단.

 

타입 캐스팅도 지원함.

parsInt() 필요없이 그냥 (int) 로도 가능.

 

상수를 정의할 때는 $를 사용하지 않음.

보통 대문자를 사용.

 

 

false이면 대소문자 구분한다는것. (기본값 false)

배열도 상수로 정의할 수 있음.

 

상수 변수는 함수 안이든 어디든 접근할 수 있음.

 

자바스크립트처럼 == === 모두 사용함.

$a < = > $b : a가 더 크면 양수 같으면 0 작으면 -1 반환.

 

. 이 concatenation 연산자

 

배열끼리 + 연산 시 Union 효과

 

 

 

a b c d 합쳐진 배열이 생성된다.

 

삼항연산자 지원하고 비슷하지만 좀 특이한 문법도 지원한다.

 

 

 

?? 연산자인데, 첫 요소부터 하나씩 확인하면서 null이 아니면 해당 변수에 대입한다.

 

if else switch while for do-while 모두 지원함.

 

foreach 문법은 자바의 forEach와 비슷함

 

array가 딕셔너리 형식으로 구성됐을 경우 foreach에 변수를 두 개 할당 가능

 

 

 

함수에서 파라미터를 사용할 수 있음.

 

php 특성상 변수의 타입을 정의하지 않는다....

 

 

 

php 7으로 넘어오면서 함수에 타입을 선언할 수 있게 됐다.

 

 

 

Loosely typed language 이므로.. 위와 같이 전달해도 오류를 뱉는 대신 5 + 5 를 연산한다.

 

 

 

 

delcare(strict_types=1) 로 정의하면 오류를 뱉는다. (타입에 좀 더 엄격해진다)

 

파이썬처럼 파라미터 값이 전달되지 않는 경우를 대비해 기본 값을 설정할 수 있다.

 

 

 

 

리턴 타입도 엄격하게 잡을 수 있다. function asdf() : int { ... } 

&을 사용해 C++처럼 레퍼런스 타입을 사용할 수 있다.

 

즉, 함수에서 call by reference를 지원한다.

 

count() 메서드로 배열의 크기를 알 수 있다.

 

딕셔너리 형태의 배열을 Associative Arrays라고 한다.

 

배열 내부에 배열을 정의해서 다차원 배열을 정의할 수 있다.

 

sort / rsort / asort .. 여러 정렬 메서드를 제공한다.

 

asort는 Associative Arrays에서 value 값으로 정렬

ksort는 Associative Arrays에서 key 값으로 정렬

 

superglobal 변수를 제공한다.

어디서든 접근할 수 있는 변수를 의미한다.

 

 

 

 

 

$_SERVER : 서버 관련 정보를 얻어온다.

$_REQUEST : HTML form 에 담겨진 정보를 얻어온다.

 

 

정규표현식도 제공한다.

반응형
저작자표시 (새창열림)

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

[PHP] PHP 정리 (2)  (0) 2022.10.19

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [PHP] PHP 정리 (2)

    [PHP] PHP 정리 (2)

    2022.10.19
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (678)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (10)
    • 💬 기록 (7)
    • 📚 공부 (6)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바