php 5.3 주의사항
작업 중인 php 서비스의 서버는 php 5.3을 사용한다. 그리고 나는 5.6을 사용한다. 이로 인해서 개발 과정에서는 겪지 못한 문제를 배포 후에 겪었고 이를 몇가지 정리하려고 한다.
constructor
namespace를 사용할 경우 constructor를 class명으로 사용할 수 없다. 다음의 코드는 둘 다 같은 결과를 얻을 것이라 기대하지만 test1쪽은 아무것도 출력하지 않는다.
// Test/App.php
namespace Test;
class App {
function App() {
echo "hello\n";
}
}
// class_test1.php
use Test;
new App();
// class_test2.php
class Test {
function Test() {
echo "hello\n";
}
}
new Test();
substr 3rd parameter
substr은 3번째 파라미터로 length를 요구한다. 5.3이후의 버전에서는 null
로 값을 넘겨주어도 문제가 없으나 5.3은 null
을 0
으로 판단하는 것 같다.
substr("test123", -3, null);
// 5.3 -> ""
// 5.3이후 -> "123"
substr("test123", -3);
// 5.3 -> "123"
// gt -> "123"
반응형