[PHP] 문자열, 배열
문자열
PHP는 기본적으로 문자열을 이루는 각 문자를 `` 1 byte``로 간주한다.
멀티바이트 문자를 다룰 때도 이를 `` 1 byte`` 단위로 다루기 때문에 오류를 방지하기 위해 ``php mb`` prefix가 붙은 함수를 사용해야 한다.
`` mb`` 함수는 기본으로 설치되지 않기 때문에 undefined function Error가 발생할 수 있다.
``bash apt-get install php-mbstring``해주고 아파치 재시작해주면 된다.
좋은 문법
``php echo``가 ``php print``보다 아주 약간 빠르다.
`` .``으로 잇는 것 보다 그냥 `` ,``으로 출력하는게 더 빠르다.
```php
echo 'Hello', ' ', 'World';``
// is better than
echo 'Hello' . ' ' . 'World';
```
단순히 출력해서 확인하려는 목적이면 ``var_dump``보다 ``print_r``이 더 낫다. 전자는 저장할 때.
문자열 연결
문자열 내부에 변수 포함시키기
``php $var``가 값으로 바인딩되는 것은 직접 `` ""``를 사용했을 경우에만, 변수 선언 시점에 일어나는 것 같다.
그래서 client 측에서 `` $var``를 포함한 문자열을 전송하거나, DB에서 꺼낸 문자열 데이터가 `` $var``를 포함하고 있어도 이를 값으로 바인딩하지 않고 `` $var``라는 문자로 인식한다.
``php <?= $var?>``도 마찬가지다.
""와 ''의 차이
`` ""``는 문자열 내부의 개행 문자나 변수를 파싱해 의미론적으로 해석하지만
`` ''``는 파싱하지 않고 그대로 출력한다.
```php
"a\r\nb" // a b
'a\r\nb' // a\r\nb
$inner = "IN";
"test $inner" // test IN
'test $inner' // test $inner
```
배열
배열의 원소를 변수에 한꺼번에 할당하기
join ( == implode ) 배열 → 문자열 결합
explode 문자열 → 배열 분할
연관 배열
extract()
``php extract()``함수는 배열 내부의 '키=값' 쌍을 그대로 변수화 시켜주는 함수다.
``php extract($_GET);`` 하면 위 예제에서는 `` user=default_value``를 선언한 것과 동일한 효과가 있어 `` $_GET[user]``가 아니라 `` $user``로 접근 가능하다
foreach
'Languages & Frameworks > PHP' 카테고리의 다른 글
[PHP] form tag, GET POST / cookie, session (0) | 2017.06.10 |
---|---|
[PHP] HTTP response header 수정 ( redirect, Download Dialog ) (0) | 2017.06.08 |
[PHP] Program execution, Shell escape (0) | 2017.06.07 |
[PHP] 상수 목록 / Super globals (0) | 2017.06.07 |
[PHP] Tip, php.ini, etc APIs (0) | 2017.03.09 |