Powrót do kategorii
Backend
tagi
php7,

Nowości PHP7 – cz. 1 – Nowe operatory, dzielenie i inne ciekawostki

Grzegorz
Grzegorz, 02/02/2016
porównanie php7

W związku z pojawieniem się nowej wersji PHP rozpoczynamy serię artykułów na temat PHP7. Na początek poznamy kilka ciekawych nowości, które na pewno usprawnią pracę przy pisaniu aplikacji. Nie są one może zbyt wyszukane ale bardzo ułatwiają pracę i są wykorzystywane w niemal każdej apliakcji. 

Nowym i bardzo ciekawym operatorem jaki pojawił się  w wersji 7 jest nowy operator porównania.

Wygląda on następująco: 

<=>

Jego działanie jest bardzo proste a zarazem bardzo przydatne i przy tym skraca kod aplikacji.

Do tej pory jeśli chcieliśmy stwiedzić która z dwóch liczb jest większa, a która mniejsza lub czy są równe należało używać konstrukcji:

function test($a,$b) {
    if($a < $b) {
        return -1;
    } elseif($a > $b) {
        return 1;
    } else {
    return 0;
    }
}

$a = 1;
$b = 5;
$result = test($a,$b);

W PHP7 przy użyciu nowego operatora zapis staje się krótki i prosty:

$a = 1;
$b = 5;

$result = $a <=> $b;

Kolejnym ciekawym operatorem jest:

??

 On również zaoszczędzi nam pisania dodatkowego kodu. Do tej pory jeśli chcieliśmy przypisać do zmiennej jakąś wartość co do której nie byliśmy pewni czy ona istnieje pisaliśmy:

$id = isset($_GET['id']) ? $_GET['id'] : -1;

W PHP7 możemy to zrobić w łatwiejszy sposób.

$id = $_GET['id'] ?? -1;

Jak to działa? Najpierw jest sprawdzana wartość wyrażenia po lewej stronie i jeśli jest różna od null to jest ona zwracana, w przeciwnym przypadku zwracana jest wartość po prawej stronie;

Operator ten można stosować w bardziej złożonych przykładach:

$test = $a ?? $b ?? $c ?? 'default';

Kolejną nową rzeczą jaka została wprowadzona jest możliwość deklarowania typów skalarnych dla argumentów funkcji (string,int,float,bool) oraz wyników zwracanych przez funkcje czy metody.

Dzięki temu mamy większą kontrolę nad tworzonym kodem aplikacji.

function foo(int $a, bool $b) {
    ....
}

Jeśli natomiast chcemy zadeklarować konkretny typ zwracany przez funkcję możemy to zrealizować w następujący sposób:

function newTest(int $x , int $y) : int {

    return $x * $y;

}

Wprowadzono także nową funkcję intdiv, która zwraca wynik z dzielenia w postaci liczby całkowitej.

Poniższy kod:

intdiv(10,3);

zwróci nam w wyniku wartość 3. Zaoszczędzi nam to także czasu na osobne wykonanie dzielenia i zaokrąglenia.

Na zakończenie należy zwrocic uwagę aby niezapominać także o zmianach które zaszły w php7 i są niekompatybilne wstecz:

– usunięta została możliwość definiowania więcej niż 1 bloku default w instrukcji switch np

switch($a) {
case 1 : ...  break;
default : ... break;
default : ... break;

– funkcje nie mogą mieć kilku parametrów o tej samej nazwie

function ($a, $b, $c,$c )

– zimenna $HTTP_RAW_POST_DATA  została usunięta

– usunieto takze obsluge tagów ASP

  <%  %>
  <%=  %>
  <script language="php"> </script>

To tylko kilka przykładów nowości. Na następne zapraszamy w następnych postach.

Poznajmy się
Poznajmy się
Chcesz porozmawiać o start-upach, projektach lub programowaniu?

Hello World! Sp. z o.o.
ul. Twarda 18
00 -105 Warszawa

+48 22 378 47 27
GOGOmedia
GOGOmedia
Internet Software House

Jesteśmy internetową firmą technologiczną, dostarczamy kompletne rozwiązania informatyczne z zakresu web aplikacji. Kompleksowo obsługujemy klientów z różnych sektorów biznesu w zakresie dedykowanego oprogramowania. Prowadzimy szkolenia, doradzamy, wykonujemy specjalistyczne audyty i dzielimy się zdobytą przez lata wiedzą. Dla wielu jesteśmy partnerem, który pomaga osiągać wyznaczone cele biznesowe w najbardziej optymalny sposób.

Polecamy
Polecamy
narzędzia wspierające naszą codzienną pracę
  • New Relic
  • CloudFlare
  • JIRA
  • Bamboo
  • Axure
  • Zendesk
  • Microsoft Project