재미있는 블로그를 찾아서 관심있는 글만 정리함
https://velog.io/@eojin/TIL-PHP-732023 : (제한적인) 문자열 증감 허용
# 기본적으로, 1바이트를 더한 결과를 가져온다.
$str0 = 'php';
echo ++$str0; // phq
# z에 1바이트 더한 것은 aa로 자릿수가 올라간다.
$str1 = 'plz';
echo ++$str1; // pma
$str2 = 'zzzzz';
echo ++$str2; // aaaaaa
# 숫자도 올라간다.
$ip1 = '192.168.0.254';
echo ++$ip1; // 192.168.0.255
# 그렇다고 방심하고 IP 주소 생성 같은 데 쓰면 그건 곤란하다.
$ip2 = '192.168.0.255';
echo ++$ip2; // 192.168.0.256
# 띄어쓰기가 있으면 안된다.
$str4 = '#MAKEPHPGREATAGAIN';
echo ++$str4; // #MAKEPHPGREATAGAIO
$str5 = '!!! MAKE PHP GREAT AGAIN !!!';
echo ++$str5; // !!! MAKE PHP GREAT AGAIN !!!
# 잘 안 될 경우 그냥 원본 문자열을 반환한다.
$str6 = '...';
echo ++$str6; // ...
$str7 = '???';
echo ++$str7; // ???
$str8 = '#PHP의영광을되찾자';
echo ++$str8; // #PHP의영광을되찾자
https://velog.io/@eojin/TIL-PHP-9122023 : PHP 가비지 콜렉팅
테스트해 보니, 메모리를 잡아먹는 코드를 별도 함수로 빼면 가비지 콜렉팅이 된다.
예컨대 원래 코드가 이런 식이라면:
while (true) {
// 메모리 잡아먹는 작업
}
이런 걸로 고칠 수 있음.
function intensive ($parameters) {
// 메모리 잡아먹는 작업
}
while (true) {
intensive($parameters);
}
https://velog.io/@eojin/TIL-PHP-4202021 : PHP 배열 내부 포인터
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport); // $mode = 'foot';
$mode = end($transport); // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';
$array = [0, 1, 2];
foreach ($array as &$val) {
var_dump(current($array));
}
[Result]
php 5:
int(1)
int(2)
bool(false)
php 7:
int(0)
int(0)
int(0)