Novinky v PHP 7 (2. díl)


V pokračování seriálu o PHP 7 si ukážeme další zajímavou funkcionalitu, které nové PHP nabízí. Přečtěte si o nových očekávaných vlastnostech i bizarnostech, které PHP nyní umožňuje.

« Číst předchozí díl  Číst následující díl »

6. "Spaceship" operátor

Operátor získal své pojmenování zřejmě podle tvaru <=> připomínající vesmírnou loď nebo létající talíř. I jeho funkce je poměrně nevídaná a inovativní. Umí porovnat dvě hodnoty a na základě výsledku vrátit tři stavy.

V případě rovnosti vrátí 0. V případě, že první operand je menší než druhý, vrátí -1. A posledním případem je, že první operand je větší než druhý a vrátí se 1.

<?php
// Čísla
echo <=> 1// 0
echo <=> 2// -1
echo <=> 1// 1

// Floaty
echo 1.5 <=> 1.5// 0
echo 1.5 <=> 2.5// -1
echo 2.5 <=> 1.5// 1
 
// Řetězce
echo "a" <=> "a"// 0
echo "a" <=> "b"// -1
echo "b" <=> "a"// 1
?>

Porovnávat můžete všechny skalární datové typy.

7. Escapování unicode znaků

Pokud znáte unicode (UTF-8) kód určitého znaku, můžete jej do řetězce zapsat novou elegantní formou.

echo "\u{aa}";
echo "\u{0000aa}";
echo "\u{9999}";

8. Filtrování tříd při deserializaci

Při deserializování objektu ze zdroje, ve který nemáme 100% důvěru existuje bezpečnostní riziko, že nám někdo propašuje k vykonání nevvyžádaný kód. Pomocí vylepšené funkce unserialize() můžeme filtrovat povolené třídy.

<?php

// converts all objects into __PHP_Incomplete_Class object
$data unserialize($foo, ["allowed_classes" => false]);

// converts all objects into __PHP_Incomplete_Class object except those of MyClass and MyClass2
$data unserialize($foo, ["allowed_classes" => ["MyClass""MyClass2"]]);

// default behaviour (same as omitting the second argument) that accepts all classes
$data unserialize($foo, ["allowed_classes" => true]);

9. Skupinový use

Znáte tu otravu, když na začátku každého PHP souboru musíte vypisovat use pro desítky tříd, které používáte? Nyní můžete tuto část kódu částečně zkrátit. Na jednom řádku s use můžete importovat několik tříd (nebo funkcí a konstant) z namespace. Funguje to takhle:

<?php

use some\namespace\{ClassAClassBClassC as C};

Pokračování příště

Příští díl bude v této sérii poslední a podíváme se, jaký má nové PHP dopad na výkon oproti předchozím verzím.

« Číst předchozí díl  Číst následující díl »


Vydáno: 21.5.2016

Další články


Poslední týden velkých slev na WEDOS

Pozor, až 55% slevy na webhosting, VPS a domény již tento týden budou končit. Slevy byly vydány na počest…

3 příplatkové služby, které se oplatí

Když si zařizujete webhosting, máte ho v základu, zvláště u levnějších variant. Výkonově může být super, ale může vám…

Novinky v PHP 7 (3. díl)

Jak je na tom PHP 7 z hlediska výkonu? A v čem PHP 7 ruší staré pořádky? Čtěte poslední díl ze seriálu PHP 7 a dozvíte…

Novinky v PHP 7 (1. díl)

Kdo by neznal PHP, nejrozšířenější skriptovací jazyk používaný pro tvorbu webových stránek. Není divu, že nabídka…

Který server-side jazyk je nejlepší?

Volba programovacího jazyka pro vaši webovou aplikaci je velmi důležitá. Některé z nich jsou vhodné pro začátečníky,…

PorovnejHosting prochází změnou

Po dvou letech fungování PorovnejHosting byl web předělán. Změna se týká v prvé řadě vzhledu, který byl zjednodušen…

Představujeme Savana.cz

Savana.cz je jednou z nejpopulárnějších firem v oblasti webhostingu na českém trhu. Jaké byly jejich začátky a co…

Nejlevnější CZ doména - kde pořídit?

Na doménu s koncovkou CZ nemusíte sahat hluboko do kapsy. Obvyklá cena je kolem 150Kč, ale zde vám poradíme, kde ji…

Slevové kupóny na WEDOS opět k dispozici

Začátkem roku došlo ke znefunkčnění všech slevových kupónů na WEDOS, které byly další den opětovně prodlouženy. Tím se…