php 5.3 주의사항
Dev

php 5.3 주의사항

2016. 9. 29. 17:12

작업 중인 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은 null0으로 판단하는 것 같다.

substr("test123", -3, null);
// 5.3 -> ""
// 5.3이후 -> "123"
substr("test123", -3);
// 5.3 -> "123"
// gt -> "123"
반응형