1. Pusta pętla
Najprostszy test, który powinien wykonywać się błyskawicznie – po prostu pusta pętla, która nie robiła nic, poza tym, że się „kręciła”.
2. Operacje bitowe
Zadanie polegające na wykonaniu kilkunastu operacji na bitach. Było to zarówno AND, OR, NOT, XOR oraz przesunięcia bitów w lewo i w prawo.
3. Dodawanie
Tym razem zadaniem było dodawanie wartości w zmiennych, jak i wpisanych w kodzie. Tyczyło zarówno liczb całkowitych, jak i zmiennoprzecinkowych. Dodawanie za pomocą różnych operatorów, w różnych konfiguracjach.
4. Odejmowanie
Zadanie analogiczne do dodawania, jednak wszędzie zmieniłem znak z plusa na minus.
5. Mnożenie
Zadanie polegało, oczywiście, na mnożeniu. Analogicznie do dodawania.
6. Dzielenie
Tym razem dzielenie, analogiczne do mnożenia. Bez sprawdzania, czy nie dzielę przypadkiem przez zero (upewniłem się co do tego, używając stosownych wartości).
7. Operacje matematyczne
To zadanie miało na celu połączyć dodawanie, odejmowanie, mnożenie i dzielenie, plus kilka prostych operacji w rodzaju policzenia przeciwprostokątnej, pola powierzchni koła (wykorzystując funkcję pi()).
8. Operacje trygonometryczne
Tym razem skupiłem się na funkcjach cosinus, sinus, tangens i tangens hiperboliczny. Przeliczenia stopni do radianów były wykonane poza pętlą.
9. Operacje na tablicach
Typowe operacje na tablicach, łączenie, suma, zliczanie elementów, pobranie kluczy, pobranie wartości, sprawdzenie czy w tablicy znajduje się zadana wartość.
10. Porównywanie wartości
W tym teście sprawdzałem porównywanie wartości ze sobą, zarówno porównaniami słabymi (==, !=) jak i mocnymi (===, !==). Dodatkowo test większości i mniejszości, oraz mniejsze-równe i większe-równe.
11. Instrukcje warunkowe
Przetestowałem zarówno if, elseif, else jak i switch. Chętnie przetestowałbym też choćby match, no ale to tylko PHP 8, więc nie miałoby sensownego porównania.
12. Pętle
Tutaj testowałem pętle for, foreach, while oraz do. Bardzo krótkie, cały test to była wielka pętla, w każdym przypadku.
13. Funkcje
Stworzyłem kilka funkcji i je wywoływałem w różnych kombinacjach.
14. Klasy
Test analogiczny do funkcji, tylko wykorzystałem klasy i ich metody oraz pola.
15. Operacje na łańcuchach
Zadanie polegało na operowaniu na łańcuchach ASCII, bez wykorzystywania żadnych znaków specjalnych. Typowe operacje łączenia, funkcje strpos, substr, strtolower czy też strtoupper.
16. Operacja na łańcuchach UTF8
Zadanie analogiczne do powyższego, jednak z zastosowaniem funkcji mb_* oraz polskich znaków.
17. Obrazy
To test, w którym tworzyłem obrazy i ustawiałem kolorowe piksele, korzystając z biblioteki GD
18. POST/GET
Wywoływanie metod POST i GET. Tutaj znaczenie miała szybkość odpowiedzi serwera, dlatego skorzystałem z serwera lokalnego (komputer był odłączony od internetu), aby zapewnić maksymalnie identyczne warunki testu.
19. WordPress
W końcu zadanie związane z tematyką bloga, a więc WordPress. Niestety, nie mogłem użyć najnowszej wersji (w chwili przeprowadzania testu był to WordPress 5.5.3), ponieważ od wersji 5.2, WordPress wymaga PHP w wersji co najmniej 5.6. Wobec tego, PHP w wersjach 5.6, 7.x i 8.0 zostały przetestowane z najnowszą wersją WordPress a wcześniejsze wersje PHP przetestowałem z WordPress 5.1.8, ostatnim, który działał na poprzednich wersjach interpretera. Dlaczego nie przetestowałem wszędzie tej samej wersji, bo przecież WP 5.1.8 ruszy i na PHP 8? Zapewne, nie sprawdzałem w sumie… Ano, częściej instalujemy najnowszego WordPressa, na najnowszych wersjach PHP, więc to porównanie wydało mi się dużo ciekawsze.