{"id":174,"date":"2020-10-08T15:26:17","date_gmt":"2020-10-08T13:26:17","guid":{"rendered":"https:\/\/wiki.activenet.sk\/?p=174"},"modified":"2020-10-08T15:41:59","modified_gmt":"2020-10-08T13:41:59","slug":"php-7-novinky-a-zmeny","status":"publish","type":"post","link":"https:\/\/wiki.activenet.sk\/index.php\/2020\/10\/08\/php-7-novinky-a-zmeny\/","title":{"rendered":"PHP 7 a 7,3 novinky a zmeny"},"content":{"rendered":"\n<p>Rozhodli sme sa spr\u00edstupni\u0165 V\u00e1m najnov\u0161ie PHP 7 na&nbsp;<a href=\"https:\/\/www.speedweb.sk\/webhosting\" target=\"_blank\" rel=\"noreferrer noopener\">webhostingovom servery<\/a>. Prin\u00e1\u0161ame V\u00e1m \u010dlanok o zmen\u00e1ch a novink\u00e1ch v php 7.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft is-resized\"><a href=\"https:\/\/www.speedweb.sk\/blog\/wp-content\/uploads\/2015\/10\/PHP.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.speedweb.sk\/blog\/wp-content\/uploads\/2015\/10\/PHP.png\" alt=\"php webhosting\" class=\"wp-image-236\" width=\"200\" height=\"105\"\/><\/a><\/figure><\/div>\n\n\n\n<p>Tvorcovia PHP sa rozhodli prepracova\u0165 d\u00e1tove \u0161trukt\u00fary, v\u010faka \u010domu<br>je php7 v\u00fdrazne r\u00fdchlej\u0161ie a menej pam\u00e4\u0165ovo n\u00e1ro\u010dne. Detailnej\u0161ie inform\u00e1cie o<br>implement\u00e1ci\u00ed n\u00e1jdete na str\u00e1nke&nbsp;https:\/\/wiki.php.net\/phpng-int.<\/p>\n\n\n\n<p>Ake novinky n\u00e1m prin\u00e1\u0161a PHP 7 ?<\/p>\n\n\n\n<p><strong>Typov\u00e1 kontrola pro skal\u00e1rne datov\u00e9 typy<\/strong><\/p>\n\n\n\n<p>Okrem vy\u0161\u0161ieho v\u00fdkonu je asi najv\u00e4\u010d\u0161ia zmena typov\u00e1 kontrola.<\/p>\n\n\n\n<p>Uvedieme si rovno aj pr\u00edklad:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><em>&lt;?php<\/em><br><em>function add(int $a, int $b) {<\/em><br><em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $a + $b;<\/em><br><em>}<\/em><br><em>add(1, 3);<\/em><\/p><\/blockquote>\n\n\n\n<p>V pr\u00edpade, \u017ee funkcii pred\u00e1me neplatn\u00e9 premenn\u00e9, dost\u00e1vame chybu:&nbsp;Argument 2 passed to add() must be of the type integer, string given, called in \u2026<\/p>\n\n\n\n<p>Kontrola d\u00e1tov\u00fdch typov nie ja automatick\u00e1, je potrebne ju na za\u010diatku s\u00faboru uviest:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>&lt;?php<br>declare(strict_types = 1);<\/p><\/blockquote>\n\n\n\n<p>Po zapnut\u00ed s\u00fa d\u00e1tove typy kontrolovan\u00e9 aj pri volan\u00ed \u0161tandartn\u00fdch funkci\u00ed.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>&lt;?php<br>declare(strict_types = 1);<br>substr(123, 2);&nbsp;\/\/substr() expects parameter 1 to be string, integer given<\/p><\/blockquote>\n\n\n\n<p>V pr\u00edpade zmeny na d\u00e1tovy typ&nbsp;<em>float<\/em>, prebieha automatick\u00e1 zmena z&nbsp;<em>int<\/em>&nbsp;na&nbsp;<em>float<\/em>. Opa\u010dne to v\u0161ak nefunguje.<\/p>\n\n\n\n<p><strong>Typy n\u00e1vratov\u00fdch hodn\u00f4t<\/strong><\/p>\n\n\n\n<p>\u010eal\u0161ou novinkou v PHP7 je mo\u017enos\u0165 definova\u0165 typ navratovej hodnoty u\u017e pri defin\u00edci\u00ed funkcie.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>&lt;?php<br>function foo(): array {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return [];<br>}<\/p><\/blockquote>\n\n\n\n<p>Pokia\u013e sa rozhodneme poru\u0161i\u0165 zadefinovan\u00fa n\u00e1vratovu hodnotu, dostaneme chybu o nespr\u00e1vnom type n\u00e1vratovej hodnoty.<\/p>\n\n\n\n<p><strong>V\u00fdnimky namiesto FATAL errorov<\/strong><\/p>\n\n\n\n<p>V pr\u00edpade nekompatibiln\u00fdch typov premenn\u00fdch dost\u00e1vame v\u00fdnimku a nie Fatal error&nbsp;<em>(Uncaught TypeException).&nbsp;<\/em>Pokial by v\u00fdnika dedila od&nbsp;<em>Exception,<\/em>&nbsp;bolo by ta\u017ek\u00e9 identifikova\u0165 niektor\u00e9 chyby. Preto vznikol nov\u00fd typ v\u00fdnimiek&nbsp;<em>EngineException.<\/em><\/p>\n\n\n\n<p><strong>Prehodnotenie E_STRICT errorov<\/strong><\/p>\n\n\n\n<p>V php7 boli jednotliv\u00e9 strict chyby prehodnoten\u00e9 a bud zru\u0161en\u00e9, alebo boli nahraden\u00e9&nbsp;E_DEPRECATED, E_NOTICE alebo E_WARNING<\/p>\n\n\n\n<p><strong>Null Coalesce Operator ??<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><em>&lt;?php<\/em><br><em>var_dump($_GET[\u201auser\u2018] ?? \u201anobody\u2018); \/\/ string(6) \u201enobody\u201c<\/em><\/p><\/blockquote>\n\n\n\n<p>Tak\u00fdto v\u00fdraz vracia \u201enobody\u201c aj v pr\u00edpade, ak index premennej GET neexistuje. Ak by sme pou\u017eili operator ? Dostali by sme Notice o nedefinovanom indexe.<\/p>\n\n\n\n<p><strong>Nov\u00fd porovn\u00e1vac\u00ed oper\u00e1tor \u2013 Spaceship<\/strong><\/p>\n\n\n\n<p>Porovn\u00e1vac\u00ed operator vracia bud 0 v pr\u00edpade zhody, -1 ak je prvy men\u0161\u00ed a 1 ak je prv\u00fd v\u00e4\u010d\u0161\u00ed.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><em>&lt;?php \/\/ http:\/\/3v4l.org\/VDBof<\/em><br><em>var_dump(1 &lt;=&gt; 1); \/\/ 0<\/em><br><em>var_dump(1 &lt;=&gt; 2); \/\/ -1<\/em><br><em>var_dump(2 &lt;=&gt; 1); \/\/ 1<\/em><br><em>var_dump((\u201aa\u2018 &lt;=&gt; \u201aa\u2018)); \/\/ 0<\/em><br><em>var_dump((\u201aa\u2018 &lt;=&gt; \u201ab\u2018)); \/\/ -1<\/em><br><em>var_dump((\u201ab\u2018 &lt;=&gt; \u201aa\u2018)); \/\/ 1<\/em><\/p><\/blockquote>\n\n\n\n<p><strong>Gener\u00e1tor kryptograficky bezpe\u010dn\u00fdch n\u00e1hodn\u00fdch \u010d\u00edsel (CSPRNG)<\/strong><\/p>\n\n\n\n<p>Vygenerova\u0165 n\u00e1hodn\u00e9 \u010d\u00edslo bolo mo\u017en\u00e9 len pomocou&nbsp;openssl_random_pseudo_bytes() alebo mcrypt_create_iv(), obe funkcie s\u00fa dostupn\u00e9 len po doin\u0161talovan\u00ed roz\u0161\u00edrenia. &nbsp;Preto v PHP7 vznikli dve nov\u00e9 funkcie:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><em>random_bytes(int length);<\/em><br><em>random_int(int min, int max);<\/em><\/p><\/blockquote>\n\n\n\n<p><strong>Anonymn\u00e9 triedy<\/strong><\/p>\n\n\n\n<p>V novom php7 m\u00f4\u017eeme vytv\u00e1ra\u0165 anonymn\u00e9 triedy:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p><em>&lt;?php&nbsp;<\/em><br><em>$instance = new class(\u201afoo\u2018) {<\/em><br><em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public $i;<\/em><br><em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public function __construct($i) {<\/em><br><em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;i = $i;<\/em><br><em>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<\/em><br><em>};<\/em><br><em>var_dump($instance); \/\/ object(class@anonymous)#1 (1) { [\u201ei\u201c]=&gt; string(3) \u201efoo\u201c }<\/em><\/p><\/blockquote>\n\n\n\n<p>Nov\u00e9 PHP 7 n\u00e1m &nbsp;prin\u00e1\u0161a zop\u00e1r vylep\u0161eni v\u00fdrazne zr\u00fdchlenie. Te\u0161\u00edme sa na reakcie prv\u00fdch pou\u017e\u00edvatelov.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Zdroj: https:\/\/www.speedweb.sk\/blog\/php-7-novinky-a-zmeny\/<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">PHP 7.3 novinky a zmeny<\/h1>\n\n\n\n<p>PHP 7.3 n\u00e1m prin\u00e1\u0161a nov\u00e9 u\u017eito\u010dn\u00e9 funkcie, deprecations a mno\u017estvo opravn\u00fdch ch\u00fdb.&nbsp;<strong>T\u00e1to verzia php u\u013eah\u010di \u017eivot hlavne webov\u00fdm v\u00fdvoj\u00e1rom<\/strong>&nbsp;.<\/p>\n\n\n\n<p id=\"caption-attachment-403\"><\/p>\n\n\n\n<p>V tomto \u010dl\u00e1nku poskytneme preh\u013ead o funkci\u00e1ch a zmen\u00e1ch, ktor\u00e9 osobne pova\u017eujeme za najzaujimavejsie.&nbsp;\u00dapln\u00fd zoznam nov\u00fdch funkci\u00ed, zmien a opraven\u00fdch ch\u00fdb n\u00e1jdete na&nbsp;<a href=\"https:\/\/github.com\/php\/php-src\/blob\/php-7.3.0beta1\/UPGRADING\" target=\"_blank\" rel=\"noreferrer noopener\">pozn\u00e1mkach upgradu<\/a>&nbsp;a na str\u00e1nke RFC n\u00e1vrhu&nbsp;<a href=\"https:\/\/wiki.php.net\/rfc\" target=\"_blank\" rel=\"noreferrer noopener\">PHP 7.3<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u010co je nov\u00e9 v PHP 7.3?<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>V tomto clanku sa pozrieme na nasleduj\u00face zmeny PHP 7.3:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/www.speedweb.sk\/blog\/php73-novinky-a-zmeny\/#heredoc-nowdoc\">Heredoc a Nowdoc<\/a><\/li><li><a>Povolenie koncovej \u010diarky vo funk\u010dn\u00fdch volaniach<\/a><\/li><li><a href=\"https:\/\/www.speedweb.sk\/blog\/php73-novinky-a-zmeny\/#JSON_THROW_ON_ERROR\">JSON_THROW_ON_ERROR<\/a><\/li><li><a href=\"https:\/\/www.speedweb.sk\/blog\/php73-novinky-a-zmeny\/#list\">list () Referen\u010dn\u00e9 priradenie<\/a><\/li><li><a href=\"https:\/\/www.speedweb.sk\/blog\/php73-novinky-a-zmeny\/#is-countable\">is_countable Funkcia<\/a><\/li><li><a href=\"https:\/\/www.speedweb.sk\/blog\/php73-novinky-a-zmeny\/#array-key-first-last\">array_key_first (), array_key_last ()<\/a><\/li><li><a href=\"https:\/\/www.speedweb.sk\/blog\/php73-novinky-a-zmeny\/#argon2\">Argon2 Password Hash Enhancements<\/a><\/li><li><a href=\"https:\/\/www.speedweb.sk\/blog\/php73-novinky-a-zmeny\/#deprecations\">Deprecations<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"heredoc-nowdoc\">Heredoc a Nowdoc<\/h2>\n\n\n\n<p>Heredoc m\u00f4\u017ee by\u0165 u\u017eito\u010dn\u00fdm n\u00e1strojom pre v\u00e4\u010d\u0161ie re\u0165azce, heredoc a nowdoc sa sa pou\u017e\u00edvaju na priradenie alebo identifik\u00e1ciu retazca.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Namiesto tohto v\u00fdrazu:\n\n$query = &lt;&lt;&lt;SQL\nSELECT * \nFROM `table`\nWHERE `column` = true;\nSQL;\n\n\/\/ Je mo\u017en\u00e9 pou\u017ei\u0165 toto:\n\n$query = &lt;&lt;&lt;SQL\n    SELECT * \n    FROM `table`\n    WHERE `column` = true;\n    SQL;<\/code><\/pre>\n\n\n\n<p>To je obzvl\u00e1\u0161\u0165 u\u017eito\u010dn\u00e9, ke\u010f pou\u017e\u00edvate Heredoc v u\u017e vnorenom kontexte.<\/p>\n\n\n\n<p>Biele priestory pred zna\u010dkou na zatvorenie bud\u00fa ignorovan\u00e9 na v\u0161etk\u00fdch riadkoch.<\/p>\n\n\n\n<p>D\u00f4le\u017eit\u00e1 pozn\u00e1mka: kv\u00f4li tejto zmene niektor\u00e9 existuj\u00face Heredocs m\u00f4\u017eu prestat fungovat, ke\u010f pou\u017e\u00edvaj\u00fa v tele t\u00fa ist\u00fa uzavieraciu zna\u010dku.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"trailing-comma-in-function-calls\">Koncov\u00e9 \u010diarky vo funk\u010dn\u00fdch volaniach<\/h2>\n\n\n\n<p>Zad\u00e1vacie \u010diarky (alebo \u201ez\u00e1vere\u010dn\u00e9 \u010diarky\u201c) s\u00fa \u010diarky prilo\u017een\u00e9 k zoznamu prvkov, parametrov alebo vlastnost\u00ed a pou\u017e\u00edvaj\u00fa sa v kontextoch, kde sa \u010dasto prid\u00e1vaj\u00fa nov\u00e9 hodnoty, preto\u017ee zabra\u0148uj\u00fa chyb\u00e1m kv\u00f4li ch\u00fdbaj\u00facej \u010diarke.&nbsp;V PHP s\u00fa v poliach povolen\u00e9 koncov\u00e9 \u010diarky a od&nbsp;<a href=\"https:\/\/wiki.php.net\/rfc\/list-syntax-trailing-commas\" target=\"_blank\" rel=\"noreferrer noopener\">PHP 7.2<\/a>&nbsp;s\u00fa povolen\u00e9 v zoskupen\u00fdch menn\u00fdch priestoroch.<\/p>\n\n\n\n<p>Od PHP 7.3 sa v deklar\u00e1ci\u00e1ch funkci\u00ed povolili koncov\u00e9 \u010diarky.&nbsp;<a href=\"https:\/\/translate.googleusercontent.com\/translate_c?depth=1&amp;hl=sk&amp;rurl=translate.google.com&amp;sl=auto&amp;sp=nmt4&amp;tl=sk&amp;u=https:\/\/en.wikipedia.org\/wiki\/Variadic_function&amp;xid=17259,15700022,15700124,15700149,15700186,15700190,15700201,15700214&amp;usg=ALkJrhiSz6wXPvW2DZCNS8jlJAT_KnovwQ\" target=\"_blank\" rel=\"noreferrer noopener\">Funkcie Variadic<\/a>&nbsp;s\u00fa pr\u00edkladom kontextu, kde s\u00fa koncov\u00e9 \u010diarky ve\u013emi u\u017eito\u010dn\u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>foo( $bar, $baz, );<\/code><\/pre>\n\n\n\n<p>M\u00f4\u017eeme pou\u017ei\u0165 zadn\u00fa \u010diarku, ke\u010f vytv\u00e1rame pole s&nbsp;<code>compact()<\/code>&nbsp;, aby sme vr\u00e1tili form\u00e1tovan\u00fd re\u0165azec so&nbsp;<code>sprintf()<\/code>&nbsp;alebo pri zl\u00fa\u010den\u00ed po\u013ea:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$newArray = array_merge( $arrayOne, $arrayTwo, &#91;'foo', 'bar'], );<\/code><\/pre>\n\n\n\n<p>Taktie\u017e koncov\u00e9 \u010diarky by boli u\u017eito\u010dn\u00e9 pri laden\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var_dump( $foo, $bar, $baz, );<\/code><\/pre>\n\n\n\n<p>A s\u00fa velmi silny nastroj s&nbsp;<code>unset()<\/code>&nbsp;a&nbsp;<code>isset()<\/code>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unset( $foo, $bar, $baz, ); isset( $foo, $bar, $baz, );<\/code><\/pre>\n\n\n\n<p>Koncov\u00e9 \u010diarky bud\u00fa povolen\u00e9 aj v pr\u00edpade volan\u00ed met\u00f3d a pr\u00edloh.<\/p>\n\n\n\n<p><strong>T\u00e1to zmena ovplyvn\u00ed iba funk\u010dn\u00e9 volania. Syntax defin\u00edcie funkcie sa nezmen\u00ed .&nbsp;<\/strong>&nbsp;Navy\u0161e vo\u013en\u00e9 \u010diarky, viacn\u00e1sobn\u00e9 zad\u00e1vacie \u010diarky a ved\u00face \u010diary nebud\u00fa povolen\u00e9 vo funkciach povolen\u00e9 nebud\u00fa.<\/p>\n\n\n\n<p>\u010eal\u0161ie pr\u00edklady n\u00e1jdete na str\u00e1nke&nbsp;<a href=\"https:\/\/wiki.php.net\/rfc\/trailing-comma-function-calls\" target=\"_blank\" rel=\"noreferrer noopener\">RFC<\/a>&nbsp;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"JSON_THROW_ON_ERROR\">JSON_THROW_ON_ERROR<\/h2>\n\n\n\n<p>Jedna z najd\u00f4le\u017eitej\u0161\u00edch funkci\u00ed, ktor\u00e9 prich\u00e1dzaj\u00fa s PHP 7.3, poskytuje nov\u00fd sp\u00f4sob rie\u0161enia ch\u00fdb JSON.&nbsp;Toto nie je hlavn\u00e1 funkcia, ale pr\u00eddavok k roz\u0161\u00edreniu JSON, ktor\u00fd zmenil chybov\u00e9 spr\u00e1vanie&nbsp;<a href=\"http:\/\/www.php.net\/json_decode\" target=\"_blank\" rel=\"noreferrer noopener\">json_decode ()<\/a>&nbsp;a&nbsp;<a href=\"http:\/\/www.php.net\/json_encode\" target=\"_blank\" rel=\"noreferrer noopener\">json_encode ()<\/a>&nbsp;.<\/p>\n\n\n\n<p>V s\u00fa\u010dasnosti&nbsp;<code>json_decode()<\/code>&nbsp;vracia hodnotu&nbsp;<code>null<\/code>&nbsp;ako chybu, ale&nbsp;<code>null<\/code>&nbsp;m\u00f4\u017ee by\u0165 tie\u017e platn\u00fdm v\u00fdsledkom.&nbsp;To by mohlo by\u0165 m\u00e4t\u00face, preto\u017ee<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Je mo\u017en\u00e9 zisti\u0165, \u010di sa vyskytla chyba iba prostredn\u00edctvom volania&nbsp;<code>json_last_error()<\/code>&nbsp;alebo&nbsp;<code>json_last_error_msg()<\/code>&nbsp;, ktor\u00e9 vr\u00e1tia glob\u00e1lny stav chyby v strojovo \u010ditate\u013en\u00fdch a \u013eudsky \u010ditate\u013en\u00fdch formul\u00e1roch.&nbsp;\u2013&nbsp;<a href=\"https:\/\/wiki.php.net\/rfc\/json_throw_on_error\" target=\"_blank\" rel=\"noreferrer noopener\">PHP RFC<\/a><\/p><\/blockquote>\n\n\n\n<p><code>json_encode()<\/code>&nbsp;vracia chybu&nbsp;<code>FALSE<\/code>&nbsp;.&nbsp;Je to jasnej\u0161ie, preto\u017ee existuje \u0161pecifick\u00e1 hodnota chyby.&nbsp;Ka\u017edop\u00e1dne&nbsp;<strong>obe funkcie nezastavuj\u00fa vykonanie programu pri chybe, ani nevyhazuj\u00fa \u017eiadne upozornenie<\/strong>&nbsp;.<\/p>\n\n\n\n<p>Tento stav meni s PHP 7.3, RFC n\u00e1vrh zmeny:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>T\u00e1to RFC namiesto aktu\u00e1lneho stavu navrhuje pridanie novej hodnoty pr\u00edznakovej vo\u013eby pre&nbsp;<code>json_decode()<\/code>&nbsp;a&nbsp;<code>json_encode()<\/code>&nbsp;,&nbsp;<code>JSON_THROW_ON_ERROR<\/code>&nbsp;.&nbsp;Pri odovzdan\u00ed tohto pr\u00edznaku sa zmen\u00ed chovanie t\u00fdchto funkci\u00ed.&nbsp;Celkov\u00fd stav chyby zost\u00e1va nedotknut\u00fd a ak sa vyskytne chyba, ktor\u00e1 by ho inak nastavila, tieto funkcie namiesto toho hodia&nbsp;<code>JsonException<\/code>&nbsp;so spr\u00e1vou a k\u00f3dom na ak\u00e9ko\u013evek&nbsp;<code>json_last_error()<\/code>&nbsp;a&nbsp;<code>json_last_error_msg()<\/code>, ktore by nastali.<\/p><\/blockquote>\n\n\n\n<p>Tu je pr\u00edklad zn\u00e1zor\u0148uj\u00faci jednoduch\u00fd sp\u00f4sob h\u00e1dzania chyby JSON:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>try { \n     json_decode(\"{\", false, 512, JSON_THROW_ON_ERROR); \n} catch (\\JsonException $exception) { \n     echo $exception->getMessage(); \/\/ echo \"Syntax error\" \n}<\/code><\/pre>\n\n\n\n<p>&nbsp;Neplatn\u00fd parameter h\u013abky odovzdan\u00fd do&nbsp;<code>json_decode()<\/code>&nbsp;vr\u00e1ti varovanie a funkcia vr\u00e1ti&nbsp;<code>NULL<\/code>&nbsp;.&nbsp;Toto spr\u00e1vanie nebude ma\u0165 vplyv na&nbsp;<code>JSON_THROW_ON_ERROR<\/code>&nbsp;.&nbsp;Podobne chyby anal\u00fdzy parametrov nie s\u00fa ovplyvnen\u00e9&nbsp;<code>JSON_THROW_ON_ERROR<\/code>&nbsp;a na\u010falej vytv\u00e1raj\u00fa upozornenia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"list\">list () Referen\u010dn\u00e9 priradenie<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u010co znamen\u00e1 referen\u010dn\u00e9 priradenie?<\/h3>\n\n\n\n<p>Pozrite si nasleduj\u00faci riadok:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$b = &amp;$a;<\/code><\/pre>\n\n\n\n<p>Premenna&nbsp;<code>$b<\/code>&nbsp;dostane hodnotu&nbsp;<code>$a<\/code>&nbsp;, ale t\u00e1to hodnota nie je skop\u00edrovan\u00e1 z&nbsp;<code>$a<\/code>&nbsp;na&nbsp;<code>$b<\/code>&nbsp;.&nbsp;V PHP m\u00f4\u017eeme priradi\u0165 hodnotu referenciou, \u010do znamen\u00e1, \u017ee dve premenn\u00e9 m\u00f4\u017eu smerova\u0165 na rovnak\u00e9 d\u00e1ta a ka\u017ed\u00e1 zmena pre ka\u017ed\u00fa premenn\u00fa ovplyv\u0148uje p\u00f4vodn\u00e9 d\u00e1ta.&nbsp;Tu je&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/language.operators.assignment.php\" target=\"_blank\" rel=\"noreferrer noopener\">pr\u00edklad z manu\u00e1lu PHP<\/a>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php \n$a = 3; \n$b = &amp;$a; \/\/ $b je referencia na $a \nprint \"$a\\n\"; \/\/ zobraz\u00ed 3 \nprint \"$b\\n\"; \/\/ zobraz\u00ed 3<\/code><\/pre>\n\n\n\n<p>Teraz zmen\u00edme hodnotu&nbsp;<code>$a<\/code>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$a = 4; \/\/ zmena $a \nprint \"$a\\n\"; \/\/ zobraz\u00ed 4 \nprint \"$b\\n\"; \/\/ zobraz\u00ed 4 preto\u017ee b je referencia na premenn\u00fa a<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u010co je list () Kon\u0161trktor a ako sa men\u00ed s PHP 7.3<\/h3>\n\n\n\n<p><a href=\"http:\/\/www.php.net\/list\" target=\"_blank\" rel=\"noreferrer noopener\">list ()<\/a>&nbsp;sa m\u00f4\u017ee pou\u017ei\u0165 na \u201eprira\u010fovanie premenn\u00fdch, ako keby boli v poli\u201c, ale s&nbsp;<code>list()<\/code>&nbsp;nie je v s\u00fa\u010dasnosti dovolen\u00e9 prira\u010fova\u0165 hodnoty premenn\u00fdch referenciou.<\/p>\n\n\n\n<p>PHP 7.3 tent problem vyriesilo, \u010do n\u00e1m umo\u017e\u0148uje priradi\u0165 premenn\u00e9 referenciou aj na&nbsp;<code>list()<\/code>&nbsp;kon\u0161trukt, ako je uveden\u00e9 v nasleduj\u00facom pr\u00edklade:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$array = &#91;1, 2]; list($a, &amp;$b) = $array;<\/code><\/pre>\n\n\n\n<p>Ktor\u00e1 je rovnak\u00e1 ako:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$array = &#91;1, 2]; $a = $array&#91;0]; $b =&amp; $array&#91;1];<\/code><\/pre>\n\n\n\n<p>V\u00fdhodou tohto n\u00e1vrhu je, \u017ee teraz m\u00f4\u017eeme priradi\u0165 viacer\u00e9 premenn\u00e9 odkazom, ktor\u00fd doteraz nebol povolen\u00fd.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Viac inform\u00e1ci\u00ed<\/h4>\n\n\n\n<ul><li>PHP Manual \u2013&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/function.list.php\" target=\"_blank\" rel=\"noreferrer noopener\">list ()<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"is-countable\">is_countable Funkcia<\/h2>\n\n\n\n<p>\u010eal\u0161ou u\u017eito\u010dnou funkciou, ktor\u00e1 prich\u00e1dza s PHP 7.3 je&nbsp;<code>is_countable()<\/code>&nbsp;.&nbsp;A\u017e do PHP 7.2 dostaneme chybu pri pokuse&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/function.count.php\" target=\"_blank\" rel=\"noreferrer noopener\">count ()<\/a>&nbsp;nie\u010doho, \u010do nie je spo\u010d\u00edtate\u013en\u00e9.&nbsp;Z tohto d\u00f4vodu, aby sme zabr\u00e1nili varovaniu, sme n\u00faten\u00ed prida\u0165 nasleduj\u00faci k\u00f3d:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (is_array($foo) || $foo instanceof Countable) { \n    \/\/ $foo is countable \n}<\/code><\/pre>\n\n\n\n<p>Z tohto d\u00f4vodu RFC navrhol funkciu&nbsp;<a href=\"https:\/\/wiki.php.net\/rfc\/is-countable\" target=\"_blank\" rel=\"noreferrer noopener\">is_countable ()<\/a>&nbsp;, ktor\u00e1 vracia hodnotu&nbsp;<code>true<\/code>&nbsp;ak dan\u00e1 premenn\u00e1 je pole alebo je to po\u010d\u00edtaj\u00faca premenn\u00e1, inak&nbsp;<code>false<\/code>&nbsp;.&nbsp;Tak\u017ee vy\u0161\u0161ie uveden\u00fd k\u00f3d by sa mohol zmeni\u0165 takto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (is_countable($foo)) { \n     \/\/ $foo is countable \n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"array-key-first-last\">array_key_first (), array_key_last ()<\/h2>\n\n\n\n<p>V s\u00fa\u010dasnosti m\u00f4\u017eeme na\u010d\u00edta\u0165 prv\u00fd a posledn\u00fd k\u013e\u00fa\u010d po\u013ea pomocou funkci\u00ed&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/function.reset.php\" target=\"_blank\" rel=\"noreferrer noopener\">reset ()<\/a>&nbsp;,&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/function.end.php\" target=\"_blank\" rel=\"noreferrer noopener\">end ()<\/a>&nbsp;a&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/function.key.php\" target=\"_blank\" rel=\"noreferrer noopener\">key ()<\/a>&nbsp;.&nbsp;Bohu\u017eia\u013e, pri t\u00fdchto funkci\u00e1ch nie je \u017eiadny sp\u00f4sob, ako zhroma\u017edi\u0165 prv\u00fd alebo posledn\u00fd index po\u013ea bez zmeny jeho vn\u00fatorn\u00e9ho stavu.&nbsp;\u010eal\u0161ie mo\u017enosti zvy\u010dajne zni\u017euj\u00fa \u010ditate\u013enos\u0165 a v\u00fdkonnos\u0165 k\u00f3du.<br>Z tohto dovodu boli navrhnute funkcie:<\/p>\n\n\n\n<ul><li><code>array_key_first()<\/code><\/li><li><code>array_key_last()<\/code><\/li><\/ul>\n\n\n\n<p>Od PHP 7.3,&nbsp;<code>array_key_first()<\/code>&nbsp;a&nbsp;<code>array_key_last()<\/code>&nbsp;umo\u017e\u0148uj\u00fa na\u010d\u00edta\u0165 prv\u00fd a posledn\u00fd k\u013e\u00fa\u010d dan\u00e9ho po\u013ea&nbsp;<strong>bez ovplyvnenia vn\u00fatorn\u00e9ho ukazovate\u013ea po\u013ea<\/strong>&nbsp;.&nbsp;Tieto nov\u00e9 funkcie n\u00e1m umo\u017enia nap\u00edsa\u0165 menej zlo\u017eit\u00fd k\u00f3d a v niektor\u00fdch pr\u00edpadoch zabr\u00e1ni\u0165 chyb\u00e1m.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">viac inform\u00e1ci\u00ed najdete na<\/h4>\n\n\n\n<ul><li><a href=\"http:\/\/php.net\/manual\/en\/function.array-key-first.php\" target=\"_blank\" rel=\"noreferrer noopener\">array_key_first<\/a><\/li><li><a href=\"\/\/php.net\/manual\/en\/function.array-key-last.php\" target=\"_blank\" rel=\"noreferrer noopener\">array_key_last<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"argon2\">Argon2 Password Hash Enhancements<\/h2>\n\n\n\n<p>Argon2 je hashovac\u00ed algoritmus implementovan\u00fd v PHP 7.2 ako alternat\u00edva k algoritmu Bcrypt.&nbsp;PHP 7.2 zaviedol kon\u0161tantu&nbsp;<code>PASSWORD_ARGON2I<\/code>&nbsp;, ktor\u00e1 je k dispoz\u00edcii pre pou\u017eitie v&nbsp;<code>password_*<\/code>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>password_hash('password', PASSWORD_ARGON2I);<\/code><\/pre>\n\n\n\n<p>Od jeho prvej implement\u00e1cie bol pridan\u00fd nov\u00fd variant Argonu2, tak\u017ee PHP 7.3 pre Argon2 prich\u00e1dza v troch variantoch:<\/p>\n\n\n\n<ul><li><strong>Argon2d<\/strong>&nbsp;maximalizuje odolnos\u0165 proti&nbsp;<strong>crakuj\u00facim<\/strong>&nbsp;\u00fatokom GPU.&nbsp;Je r\u00fdchlej\u0161\u00ed a vyu\u017e\u00edva pr\u00edstup zalo\u017een\u00fd na d\u00e1tovej pam\u00e4ti.<\/li><li><strong>Argon2i<\/strong>&nbsp;vyu\u017e\u00edva pr\u00edstup k d\u00e1tam nez\u00e1visl\u00fd od pam\u00e4te, ktor\u00fd je preferovan\u00fd pri&nbsp;<strong>ha\u0161ovan\u00ed<\/strong>&nbsp;hesla.&nbsp;Je pomal\u0161\u00ed, preto\u017ee rob\u00ed viac prech\u00e1dza cez pam\u00e4\u0165 na ochranu proti \u00fatokom z obchodovania.<\/li><li><strong>Argon2id<\/strong>&nbsp;je hybridn\u00e1 verzia, ktor\u00e1 kombinuje pr\u00edstup Argon2i pre prv\u00fd prechod cez pam\u00e4\u0165 a pr\u00edstup Argon2d pre n\u00e1sledn\u00e9 prechody.<\/li><\/ul>\n\n\n\n<p>Argon2id sa odpor\u00fa\u010da na internete, s v\u00fdnimkou pr\u00edpadov, ke\u010f existuj\u00fa d\u00f4vody na to, aby ste konkr\u00e9tne uprednostnili in\u00fd variant.<\/p>\n\n\n\n<p>Nov\u00fd RFC navrhuje implement\u00e1ciu Argon2id v r\u00e1mci funkci\u00ed&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/ref.password.php\" target=\"_blank\" rel=\"noreferrer noopener\">password_ *<\/a>&nbsp;s novou kon\u0161tantou&nbsp;<code>PASSWORD_ARGON2ID<\/code>&nbsp;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>password_hash('password', PASSWORD_ARGON2ID);<\/code><\/pre>\n\n\n\n<p>Implement\u00e1cia je identick\u00e1 s implement\u00e1ciou Argon2i a akceptuje rovnak\u00e9 n\u00e1kladov\u00e9 faktory:<\/p>\n\n\n\n<ul><li>Cena&nbsp;<strong>pam\u00e4te,<\/strong>&nbsp;ktor\u00e1 definuje po\u010det KiB, ktor\u00fd by sa mal spotrebova\u0165 po\u010das hashovania (predvolen\u00e9 hodnoty s\u00fa 1 &lt;&lt; 10 alebo 1024 KiB alebo 1 MiB)<\/li><li><strong>\u010casov\u00e9 n\u00e1klady,<\/strong>&nbsp;ktor\u00e9 ur\u010duj\u00fa po\u010det iteraci\u00ed algoritmu hash (predvolen\u00e9 na 2)<\/li><li><strong>Faktor paralelnosti<\/strong>&nbsp;, ktor\u00fd nastavuje po\u010det paraleln\u00fdch vl\u00e1kien, ktor\u00e9 sa pou\u017eij\u00fa po\u010das hashovania (predvolen\u00e9 hodnoty 2)<\/li><\/ul>\n\n\n\n<p>Pozrite si nasleduj\u00faci k\u00f3d (pr\u00edklad konfigur\u00e1cie):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$options = &#91;'memory_cost' => 1&lt;&lt;11, 'time_cost' => 4, 'threads' => 2]; \npassword_hash('password', PASSWORD_ARGON2ID, $options);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"deprecations\">Deprecations<\/h2>\n\n\n\n<p>Nasleduj\u00face funkcie \/ funkcionality bud\u00fa ozna\u010den\u00e9 ako deprecated v PHP 7.3 a odstr\u00e1nen\u00e9 najnesk\u00f4r PHP 8.0.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">&nbsp; image2wbmp ()<\/h3>\n\n\n\n<p>Funkcia&nbsp;<strong>image2wbmp () vygeneruje<\/strong>&nbsp;alebo ulo\u017e\u00ed verziu&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Wireless_Application_Protocol_Bitmap_Format\" target=\"_blank\" rel=\"noreferrer noopener\">WBMP<\/a>&nbsp;dan\u00e9ho obr\u00e1zka.&nbsp;T\u00e1to funkcia pou\u017e\u00edva tri argumenty: zdroj obr\u00e1zka, n\u00e1zov s\u00faboru (cesta k ulo\u017een\u00e9mu s\u00faboru) a farbu popredia.<br>Od PHP 5.0 je toto\u017en\u00e1 s&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/function.imagewbmp.php\" target=\"_blank\" rel=\"noreferrer noopener\">imagewbmp ()<\/a>&nbsp;, preto RFC navrhlo zru\u0161enie a odstr\u00e1nenie tejto funkcie.<\/p>\n\n\n\n<p><strong>Zru\u0161enie kon\u0161t\u00e1nt citliv\u00e9 na mal\u00e9 a mal\u00e9 p\u00edsmen\u00e1<\/strong><\/p>\n\n\n\n<p>PHP v s\u00fa\u010dasnosti podporuje kon\u0161tanty citliv\u00e9 na ve\u013ek\u00e9 aj mal\u00e9 p\u00edsmen\u00e1 a mal\u00e9 a ve\u013ek\u00e9 p\u00edsmen\u00e1.&nbsp;V ka\u017edom&nbsp;<strong>pr\u00edpade<\/strong>&nbsp;s\u00fa kon\u0161tanty&nbsp;<strong>citliv\u00e9 na mal\u00e9 a mal\u00e9 p\u00edsmen\u00e1<\/strong>&nbsp;podporovan\u00e9, ale pova\u017euj\u00fa sa za predmet nekonzistentnosti vo funkci\u00e1ch a s\u00fa zlo\u017eit\u00e9 na pou\u017eitie.<br>Tento n\u00e1vrh za\u010d\u00edna t\u00fdmito predpokladmi:<\/p>\n\n\n\n<ul><li><a href=\"http:\/\/php.net\/manual\/en\/language.oop5.constants.php\" target=\"_blank\" rel=\"noreferrer noopener\">triedy kon\u0161t\u00e1nt<\/a>&nbsp;s\u00fa v\u017edy rozli\u0161uj\u00face mal\u00e9 a ve\u013ek\u00e9 p\u00edsmen\u00e1<\/li><li>glob\u00e1lne kon\u0161tanty deklarovan\u00e9 s&nbsp;<code>const<\/code>&nbsp;s\u00fa v\u017edy ve\u013ek\u00e9 a mal\u00e9 p\u00edsmen\u00e1<\/li><li>kon\u0161t\u00e1ny definovan\u00e9 s&nbsp;<code>define()<\/code>&nbsp;maj\u00fa predvolen\u00e9 rozl\u00ed\u0161enie ve\u013ek\u00fdch a mal\u00fdch p\u00edsmen<\/li><\/ul>\n\n\n\n<p>RFC navrhuje tieto zmeny:<\/p>\n\n\n\n<ul><li>Deprecate call&nbsp;<code>define()<\/code>&nbsp;s tret\u00edm parametrom nastaven\u00fdm na&nbsp;<code>true<\/code>&nbsp;\u2013 PHP 7.3<\/li><li>Odstr\u00e1ni\u0165 pr\u00edstup kon\u0161tantn\u00fdch citliv\u00fdch na p\u00edsmen\u00e1 s puzdrom odli\u0161n\u00fdm od deklaracie (s v\u00fdnimkou&nbsp;<code>true<\/code>&nbsp;,&nbsp;<code>false<\/code>&nbsp;a&nbsp;<code>null<\/code>&nbsp;) \u2013 PHP 7.3<\/li><li>Odstr\u00e1ni\u0165 mo\u017enos\u0165 deklarova\u0165 kon\u0161tanty citliv\u00e9 na ve\u013ekos\u0165 p\u00edsmen \u2013 PHP 8.0<\/li><li>Konvert&nbsp;<code>true<\/code>&nbsp;,&nbsp;<code>false<\/code>&nbsp;a&nbsp;<code>null<\/code>&nbsp;z kon\u0161t\u00e1nt so \u0161peci\u00e1lnym puzdrom na rezervovan\u00e9 k\u013e\u00fa\u010dov\u00e9 slov\u00e1 \u2013 PHP 8.0<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Da\u013e\u0161ie deprecations pre PHP 7.3<\/h3>\n\n\n\n<p>Zoznam niektorych funkci\u00ed, ktor\u00e9 s\u00fa zastaran\u00e9 v PHP 7.3.&nbsp;\u00dapln\u00fd zoznam navrhovan\u00fdch odpisov n\u00e1jdete v \u010dl\u00e1nku&nbsp;<a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_3\" target=\"_blank\" rel=\"noreferrer noopener\">Deprecations pre PHP 7.3<\/a>&nbsp;.<\/p>\n\n\n\n<p><strong>Nezdokumentovan\u00e9 aliasy funkcie mbstring<\/strong>&nbsp;: existuje nieko\u013eko neozna\u010den\u00fdch aliasov funkcie&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/book.mbstring.php\" target=\"_blank\" rel=\"noreferrer noopener\">mbstring,<\/a>&nbsp;ktor\u00e9 s\u00fa duplicitami ekvivalentn\u00fdch funkci\u00ed pomocou prefixu&nbsp;<code>mb_<\/code>&nbsp;.&nbsp;Napr\u00edklad&nbsp;<code>mbereg<\/code>&nbsp;je alias&nbsp;<code>mb_ereg<\/code>&nbsp;.<br>V\u0161etky tieto funkcie by boli ozna\u010den\u00e9 ako zastaran\u00e9 a upozornenie na odmietnutie by sa malo odhodi\u0165, ke\u010f sa vyskytn\u00fa po\u010das kompil\u00e1cie.<\/p>\n\n\n\n<p><strong>Funkcie vyh\u013ead\u00e1vania re\u0165azca s celo\u010d\u00edselnou hladanim<\/strong>&nbsp;: tieto funkcie zvy\u010dajne pracuj\u00fa s re\u0165azcami.&nbsp;Ak je zadan\u00e9 \u010d\u00edslo s nie re\u0165azcom, konvertuje sa na cel\u00e9 \u010d\u00edslo a pou\u017eije sa ako poradov\u00e1 hodnota znaku (viac si pre\u010d\u00edtajte v&nbsp;<a href=\"http:\/\/php.net\/manual\/en\/function.strpos.php\" target=\"_blank\" rel=\"noreferrer noopener\">pr\u00edru\u010dke PHP<\/a>&nbsp;).<\/p>\n\n\n\n<p>Pr\u00edklad:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$str = \"There are 20 papers\";\n var_dump(strpos($str, \"20\")); \/\/ int(20) \nvar_dump(strpos($str, 20)); \/\/ bool(false)<\/code><\/pre>\n\n\n\n<p>Toto je pova\u017eovan\u00e9 za m\u00e4t\u00face a sp\u00f4sobuje nepredv\u00eddate\u013en\u00e9 probl\u00e9my, preto\u017ee typ sa m\u00f4\u017ee meni\u0165 pomocou zdroja \u00fadajov pou\u017e\u00edvate\u013eov.&nbsp;Z tohto d\u00f4vodu RFC navrhuje vydanie upozornenia na odmietnutie, ak je non-string ihla prenesen\u00e1 na jednu z nasleduj\u00facich funkci\u00ed:<\/p>\n\n\n\n<ul><li><code>strpos<\/code><\/li><li><code>strrpos<\/code><\/li><li><code>stripos<\/code><\/li><li><code>strripos<\/code><\/li><li><code>strstr<\/code><\/li><li><code>strchr<\/code><\/li><li><code>strrchr<\/code><\/li><li><code>stristr<\/code><\/li><\/ul>\n\n\n\n<p>V PHP 8.0 by sa malo odstr\u00e1ni\u0165 upozornenie na odmietnutie a ihly by sa mali automaticky premeni\u0165 na re\u0165azce.<\/p>\n\n\n\n<p>RFC navrhuje ozna\u010di\u0165\u00a0<code>fgetss()<\/code>\u00a0,\u00a0<code>gzgetss()<\/code>\u00a0a\u00a0<code>SplFileObject::fgetss() ako deprecated<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Zdroj: https:\/\/www.speedweb.sk\/blog\/php73-novinky-a-zmeny\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rozhodli sme sa spr\u00edstupni\u0165 V\u00e1m najnov\u0161ie PHP 7 na&nbsp;webhostingovom servery. Prin\u00e1\u0161ame V\u00e1m \u010dlanok o zmen\u00e1ch a novink\u00e1ch v php 7. Tvorcovia PHP sa rozhodli prepracova\u0165 d\u00e1tove \u0161trukt\u00fary, v\u010faka \u010domuje php7 v\u00fdrazne r\u00fdchlej\u0161ie a menej pam\u00e4\u0165ovo n\u00e1ro\u010dne. Detailnej\u0161ie inform\u00e1cie oimplement\u00e1ci\u00ed n\u00e1jdete na str\u00e1nke&nbsp;https:\/\/wiki.php.net\/phpng-int. Ake novinky n\u00e1m prin\u00e1\u0161a PHP 7 ? Typov\u00e1 kontrola pro skal\u00e1rne datov\u00e9 typy [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/posts\/174"}],"collection":[{"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/comments?post=174"}],"version-history":[{"count":3,"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/posts\/174\/revisions"}],"predecessor-version":[{"id":180,"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/posts\/174\/revisions\/180"}],"wp:attachment":[{"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/media?parent=174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/categories?post=174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiki.activenet.sk\/index.php\/wp-json\/wp\/v2\/tags?post=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}