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

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

Czas czytania:

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.

Zainteresował Cię ten artykuł?

Oferujemy profesjonalne wsparcie programistów w technologii Web.
Może Cię również zainteresować:
5 rzeczy, na które warto zwrócić uwagę, wybierając dedykowany system klasy ERP, WMS lub LMS

Tworzenie dedykowanych aplikacji web’owych (dostępnych przez przeglądarkę WWW z poziomu komputera, tabletu czy telefonu) jest… Read More

Clutch Recognizes GOGOmedia as a 2022 Development Leader in Poland

GOGOmedia is a multidisciplinary team with vast experience in the digital technology space. We deliver… Read More