Na SecDay 2009 mówiłem m.in. o tym, że PHP może z zewnątrz przyjmować nie tylko stringi (int'y są też przekazywane jako stringi), ale również arraye (tablice). Jak prezentowałem, niespodziewanymi arrayami można wywołać całkiem niezłą masę warningów, a dodatkowo czasami zmylić logikę skryptu i doprowadzić do pewnych nieoczekiwanych przez twórcę rezultatów (osoby które nie widziały prelekcji, zachęcam do jej obejrzenia). Podczas prelekcji pokazywałem kilka raportów z wynikami testu paru funkcji PHP, obiecując że ów raporty udostępnię - co niniejszym czynie.
Każdy raport zawiera listę funkcji. Na każdej funkcji zostało wykonane N testów, gdzie N to liczba parametrów przyjmowanych przez funkcje (czyli jeden test per parametr). Każdy test polegał na podaniu array'a jako N-ty parametr funkcji. Kolejne kolumny w raporcie zawierają:
1. Numer testowanego parametru
2. Co funkcja wypisała (do output buffora) i co zwróciła (wypisywane var_dumpem; niestety czasami output nachodzi na info od vardumpu)
3. Warning/notice/etc rzucany przez funkcję
Warto porównać zawartość raportów z różnych wersji PHP, np. moim zdaniem bardzo ciekawie wygląda raport z 5.2.6 zestawiony z raportem z 5.3.0. Dodam, że nowe PHP generują dużo więcej warningów niż starsze wersje - lepiej dla programistów/testerów, gorzej dla adminów (którzy nie wyłączą pokazywania komunikatów).
Raport z PHP 5.2.6
Raport z PHP 5.2.10
Raport z PHP 5.3.0
Raport z PHP 6.0 SVN
Co jakiś czas będę te raporty aktualizował, o czym pewnie będę informował newsami ;>
2009-11-05:
Add a comment: