[PHP] PHP 정리 (1)
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 |
---|