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


Wedos připravuje slevu na prodloužení při výročí republiky

Máme pro vás další dobrou zprávu. Jak už jste asi mohli mnohde zaznamenat, naše republika má stoleté výročí. Pro…

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…