{"id":8130,"date":"2025-12-17T10:20:17","date_gmt":"2025-12-17T10:20:17","guid":{"rendered":"https:\/\/jchost.pl\/blog\/?p=8130"},"modified":"2025-12-17T10:20:17","modified_gmt":"2025-12-17T10:20:17","slug":"php-8-5-co-nowego-test-wydajnosci","status":"publish","type":"post","link":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/","title":{"rendered":"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci"},"content":{"rendered":"<!--themify_builder_content-->\n<div id=\"themify_builder_content-8130\" data-postid=\"8130\" class=\"themify_builder_content themify_builder_content-8130 themify_builder tf_clear\">\n                    <div  data-lazy=\"1\" class=\"module_row themify_builder_row tb_h9qa810 tb_first tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_1 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col-full tb_3brt810 first\">\n                    <!-- module text -->\n<div  class=\"module module-text tb_lqj8810   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h1 style=\"text-align: center;\">PHP 8.5 \u2013 co nowego? Test wydajno\u015bci<\/h1>    <\/div>\n<\/div>\n<!-- \/module text -->        <\/div>\n                        <\/div>\n        <\/div>\n                        <div  data-lazy=\"1\" class=\"module_row themify_builder_row tb_gamj809 tf_w\">\n                        <div class=\"row_inner col_align_top tb_col_count_3 tf_box tf_rel\">\n                        <div  data-lazy=\"1\" class=\"module_column tb-column col4-1 tb_ii38810 first\">\n                            <\/div>\n                    <div  data-lazy=\"1\" class=\"module_column tb-column col4-2 tb_492m809\">\n                    <!-- module text -->\n<div  class=\"module module-text tb_3dcn810   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h2>PHP 8.5<\/h2>\n<p style=\"text-align: left;\">Wdro\u017cona 20 listopada 2025 roku aktualizacja PHP 8.5 wprowadza kilka u\u017cytecznych nowo\u015bci usprawniaj\u0105cych prac\u0119 programist\u00f3w, odpowiadaj\u0105c r\u00f3wnocze\u015bnie za wi\u0119ksz\u0105 przejrzysto\u015b\u0107 i czytelno\u015b\u0107 kodu.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module image -->\n<div  class=\"module module-image tb_3735810 image-center rounded  tf_mw\" data-lazy=\"1\">\n        <div class=\"image-wrap tf_rel tf_mw\">\n            <img loading=\"lazy\" decoding=\"async\" width=\"879\" height=\"469\" src=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11.jpg\" class=\"wp-post-image wp-image-8135\" title=\"PHP 8.5 \u2013 co nowego?\" alt=\"Jak prezentuje si\u0119 najnowsza wersja PHP 8.5?\" srcset=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11.jpg 879w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11-300x160.jpg 300w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11-768x410.jpg 768w\" sizes=\"auto, (max-width: 879px) 100vw, 879px\" \/>    \n        <\/div>\n    <!-- \/image-wrap -->\n    \n        <\/div>\n<!-- \/module image -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_1kjg810\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_pj6m810 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_39d3810   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p style=\"text-align: left;\">Aktualna kompilacja naprawia <strong>94 og\u00f3lnych b\u0142\u0119d\u00f3w<\/strong>, w tym najwi\u0119cej dotycz\u0105cych <strong>podstawowych funkcjonalno\u015bci<\/strong> (<strong>31<\/strong>) i <strong>Opcache<\/strong> (<strong>17<\/strong>). A r\u00f3wnocze\u015bnie dodaje szereg u\u0142atwiaj\u0105cych dzia\u0142ania funkcji, mechanizm\u00f3w do lepszej obs\u0142ugi b\u0142\u0119d\u00f3w czy metod weryfikacji bie\u017c\u0105cej konfiguracji architektury.<\/p>\n<p style=\"text-align: left;\">Jak zatem prezentuje si\u0119 nowe PHP 8.5 i jakie udogodnienia wprowadza? O tym szeroko poni\u017cej.<\/p>    <\/div>\n<\/div>\n<!-- \/module text -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_wkqu809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_7i6y809 first\">\n                            <\/div>\n                    <\/div>\n                <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_wiv4809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_pmip809 first\">\n                    <!-- module box -->\n<div  class=\"module module-box tb_uh6n809 \" data-lazy=\"1\">\n    <div class=\"module-box-content ui  yellow\">\n                <div class=\"tb_text_wrap\"><p style=\"text-align: left; margin-bottom: 0px;\"><strong>Warto wiedzie\u0107:<\/strong> PHP 8.5 to jedna z ciekawszych aktualizacji. Nowa ods\u0142ona tego j\u0119zyka nie jest tak fundamentalna jak wersja <strong><a href=\"https:\/\/jchost.pl\/blog\/php-8\/\" target=\"_blank\" rel=\"noopener\">8.0<\/a><\/strong>, jednak szereg drobnych, acz praktycznych ulepsze\u0144, czyni j\u0105 jedn\u0105 z bardziej udanych.<\/p><\/div>\n    <\/div>\n<\/div>\n<!-- \/module box -->\n        <\/div>\n                    <\/div>\n                <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_fuy3809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_jaqd809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_iao5809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h3 style=\"text-align: left;\">Wydajno\u015b\u0107 PHP 8.5 vs. 8.x vs. 7.4 vs. 5.6<\/h3>\n<p style=\"text-align: left;\">Mimo i\u017c PHP 8.5 nieznacznie odstaje od osi\u0105g\u00f3w uprzednich wersji, tak nie jest to uderzaj\u0105ca r\u00f3\u017cnica. Jak albowiem ukazuje to poni\u017csze zestawienie, parametry wydajno\u015bciowe wszystkich 4 minionych kompilacji j\u0119zyka (<strong>PHP 8.1<\/strong>,<strong> PHP 8.2<\/strong>,<strong> PHP 8.3 <\/strong>i<strong> PHP 8.4<\/strong>) oraz obecnej s\u0105 zbli\u017cone.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module image -->\n<div  class=\"module module-image tb_bsl8809 image-center rounded drop-shadow  tf_mw\" data-lazy=\"1\">\n        <div class=\"image-wrap tf_rel tf_mw\">\n            <img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"401\" src=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/big-image-1.jpg\" class=\"wp-post-image wp-image-8126\" title=\"PHP 8.5 \u2013 co nowego?\" alt=\"Jak wygl\u0105da og\u00f3lna wydajno\u015b\u0107 PHP 8.5? Wyniki testu.\" srcset=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/big-image-1.jpg 600w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/big-image-1-300x201.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/>    \n        <\/div>\n    <!-- \/image-wrap -->\n    \n        <\/div>\n<!-- \/module image -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_2k67809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_qbko809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_cllx809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p>Wskazany test zosta\u0142 przeprowadzony na <strong>AMD Ryzen Threadripper 7980X<\/strong> przez ekip\u0119 Openbenchmarking.org, dostarczaj\u0105c og\u00f3lny wgl\u0105d w wyniki benchmark PHPBench.<br><br>Rezultat uzyskany przez PHP 8.5 (dev) pozwala stwierdzi\u0107, i\u017c jest on:<\/p>\n<ul>\n<li>o <strong>2,98%<\/strong> ni\u017cszy od <strong>PHP 8.4<\/strong>;<\/li>\n<li>o <strong>0,16%<\/strong> ni\u017cszy od <strong>PHP 8.3<\/strong>;<\/li>\n<li>o <strong>0,93%<\/strong> ni\u017cszy od <strong>PHP 8.2<\/strong>;<\/li>\n<li>o <strong>3,92%<\/strong> ni\u017cszy od <strong>PHP 8.1<\/strong>.<\/li>\n<\/ul>\n<p>Dla szerokiego por\u00f3wnania (oraz danych zawartych <strong><a href=\"https:\/\/jchost.pl\/blog\/php-8-2-co-nowego-test-wydajnosci\/\" target=\"_blank\" rel=\"noopener\">tutaj<\/a><\/strong>) trzeba jednak zauwa\u017cy\u0107, i\u017c nowe PHP 8.5 znacz\u0105co wyprzedza wcze\u015bniejsze wersje j\u0119zyka. To jest:<\/p>\n<ul>\n<li>o <strong>84,46%<\/strong> osi\u0105gi <strong>PHP 7.4<\/strong>;<\/li>\n<li>o <strong>315,18%<\/strong> osi\u0105gi <strong>PHP 5.6<\/strong>.<\/li>\n<\/ul>\n<p>Dodatkowo nowo dodane funkcje, kt\u00f3re om\u00f3wimy za moment i inne wdro\u017cone aktualizacje dostrzegalnie poprawiaj\u0105 komfort pracy programist\u00f3w. Brak wyra\u017anego skoku w osi\u0105gach wydajno\u015bci nie powinien w zwi\u0105zku z tym nader mocno wa\u017cy\u0107 na ocenie tego wydania.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module box -->\n<div  class=\"module module-box tb_u1u9809 \" data-lazy=\"1\">\n    <div class=\"module-box-content ui  yellow\">\n                <div class=\"tb_text_wrap\"><p style=\"text-align: left; margin-bottom: 0px;\"><strong>Warto wiedzie\u0107:<\/strong> <strong>39.6%<\/strong> wszystkich stron www korzysta z kt\u00f3rej\u015b z wersji <strong>8x<\/strong>. Najwi\u0119cej z nich operuje na <strong>PHP 8.2<\/strong> (<strong>38.6%<\/strong>).<\/p><\/div>\n    <\/div>\n<\/div>\n<!-- \/module box -->\n<!-- module box -->\n<div  class=\"module module-box tb_no0g809 \" data-lazy=\"1\">\n    <div class=\"module-box-content ui  orange\">\n                <div class=\"tb_text_wrap\"><p style=\"text-align: center; margin-bottom: 0px;\">Sprawd\u017a najszybszy na rynku <a style=\"color: #fff; font-weight: 600;\" href=\"https:\/\/jchost.pl\/hosting\/wordpress\/\" target=\"_blank\" rel=\"noopener\">hosting WordPress<\/a> oraz <a style=\"color: #fff; font-weight: 600;\" href=\"https:\/\/jchost.pl\/hosting\/magento\/\" target=\"_blank\" rel=\"noopener\">hosting Ecommerce<\/a> z PHP 8.5.<\/p><\/div>\n    <\/div>\n<\/div>\n<!-- \/module box -->\n        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_eiog809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_widz809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_1eto809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h3 style=\"text-align: left;\">Co nowego w PHP 8.5<\/h3>\n<p style=\"text-align: left;\">W\u015br\u00f3d uwzgl\u0119dnionych w ramach tej wersji opcji znajdziemy kilka ciekawostek reorganizuj\u0105cych spos\u00f3b obs\u0142ugi b\u0142\u0119d\u00f3w i operacji dokonywanych na kodzie.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module image -->\n<div  class=\"module module-image tb_jza3809 image-center rounded drop-shadow  tf_mw\" data-lazy=\"1\">\n        <div class=\"image-wrap tf_rel tf_mw\">\n            <img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"200\" src=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/small-image1.jpg\" class=\"wp-post-image wp-image-8128\" title=\"PHP 8.5 \u2013 co nowego?\" alt=\"Jakich modyfikacji dokonano w PHP 8.5? Najwa\u017cniejsze zmiany.\" srcset=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/small-image1.jpg 600w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/small-image1-300x100.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/>    \n        <\/div>\n    <!-- \/image-wrap -->\n    \n        <\/div>\n<!-- \/module image -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_ehzn809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_tk5b809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_zr87809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p style=\"text-align: left;\">Aby si\u0119gn\u0105\u0107 po obszern\u0105 list\u0119 wszystkich wprowadzonych poprawek nale\u017cy zajrze\u0107 do oficjalnej <strong><a href=\"https:\/\/www.php.net\/releases\/8.5\/en.php\" target=\"_blank\" rel=\"noopener\">dokumentacji<\/a><\/strong>.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_tswe809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p style=\"text-align: left;\"><span style=\"font-weight: bold;\">Tymczasem oto najciekawsze zmiany dokonane przy okazji PHP 8.5: <\/span><\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_vbyp809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4><strong>Pipe Operator (operator potoku)<\/strong><\/h4>\n<p style=\"text-align: left;\">Wdro\u017cone usprawnienie pozwala na \u201e\u0142a\u0144cuchowanie\u201d wywo\u0142a\u0144 funkcji, przekazuj\u0105c warto\u015bci od jednej do drugiej bez wykorzystywania zmiennych.<\/p>    <\/div>\n<\/div>\n<!-- \/module text -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_b5q7809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_x6zs809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_udj3809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <pre class=\" language-php\"><code class=\" language-php\"><span class=\"token variable\">$title = ' PHP 8.5 Released ';\n\n$slug = $title\n    |> trim(...)\n    |> (fn($str) => str_replace(' ', '-', $str))\n    |> (fn($str) => str_replace('.', '', $str))\n    |> strtolower(...);\n\nvar_dump($slug);\n\/\/ string(15) \"php-85-released\" <\/span> <\/code><\/pre>\n    <\/div>\n<\/div>\n<!-- \/module text -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_77tk809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_k6qe809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_owf5809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p style=\"text-align: left;\">W rezultacie wynik wyra\u017cenia z lewej strony staje si\u0119 z automatu danymi wej\u015bciowymi (poprzez argument) dla funkcji b\u0119d\u0105cej po prawej.<br>Eliminuje to tworzenie \u201ezagnie\u017cd\u017conych wywo\u0142a\u0144\u201d, czyni\u0105c kod czytelniejszym.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_tr9c809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4><strong>Nowe funkcje array_first() i array_last()<\/strong><\/h4>\n<p style=\"text-align: left;\">PHP 8.5 dostarcza nowy spos\u00f3b ustalenia pierwszego i ostatniego elementu tablicy.<\/p>\n<pre class=\" language-php\"><code class=\" language-php\"><span class=\"token variable\">array_first([1, 2, 3]); \/\/ 1\narray_first([2, 3]); \/\/ 2\narray_first(['a' =&gt; 2, 'b' =&gt; 1]); \/\/ 2\narray_first([null, 2, 3]); \/\/ null\narray_first([]); \/\/ null\narray_first([$obj, 2, 3]); \/\/ $obj\narray_first([1])); \/\/ 1\narray_first([true]); \/\/ true<\/span> <\/code><\/pre>\n<p style=\"text-align: left; padding-top: 20px;\">Wcze\u015bniej, aby pobra\u0107 te dane, wykorzystywano niezbyt zgrabne metody typu <code>reset()<\/code>, <code>end()<\/code>. Nios\u0142o to za sob\u0105 ryzyko b\u0142\u0119d\u00f3w lub dokonania nieintencjonalnej modyfikacji. Aktualnie do istniej\u0105cych ju\u017c w sk\u0142adni funkcji <code>array_key_first()<\/code> i <code>array_key_last()<\/code>, operuj\u0105cych na kluczach dodano nowe rozwi\u0105zanie, skupiaj\u0105ce si\u0119 na warto\u015bciach.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_uwls809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4><strong>Atrybut #[\\NoDiscard]<\/strong><\/h4>\n<p style=\"text-align: left;\">Aby unikn\u0105\u0107 pomini\u0119cia zwracanych warto\u015bci przy wywo\u0142ywaniu funkcji, PHP 8.5 wdra\u017ca poprawk\u0119, kt\u00f3ra ostrze\u017ce o zaistnieniu takiej sytuacji.<\/p>\n<pre class=\" language-php\"><code class=\" language-php\"><span class=\"token variable\">#[\\NoDiscard]\nfunction getPhpVersion(): string\n{\n    return 'PHP 8.5';\n}\n\ngetPhpVersion();\n\/\/ Warning: The return value of function getPhpVersion() should\n\/\/ either be used or intentionally ignored by casting it as (void)<\/span> <\/code><\/pre>\n<p style=\"text-align: left; padding-top: 20px;\">W konsekwencji zmiana ta wymusza obs\u0142ug\u0119 wyniku. Mo\u017cna j\u0105 jednak intencjonalnie obej\u015b\u0107, wykorzystuj\u0105c rzutowanie na void.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_yyw1809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4><strong>Stack trace do obs\u0142ugi fatalnych b\u0142\u0119d\u00f3w<\/strong><\/h4>\n<p style=\"text-align: left;\">W celu lepszego przetwarzania niezgodno\u015bci w kodzie, PHP 8.5 wprowadza mechanizm pozwalaj\u0105cy uzyska\u0107 obszerniejsze informacje na temat zaistnia\u0142ej nieprawid\u0142owo\u015bci.<br \/>\nWcze\u015bniej dla typowego zdarzenia zakres zwracanych danych o b\u0142\u0119dzie nie by\u0142 zbyt szeroki:<\/p>\n<pre class=\" language-php\"><code class=\" language-php\"><span class=\"token variable\">Fatal error: Allowed memory size of 2097152 bytes exhausted \n(tried to allocate 5242912 bytes) \nin ... on line ...\n<\/span> <\/code><\/pre>\n<p style=\"text-align: left; padding-top: 20px;\">Jednak wskazana modyfikacja to zmienia:<\/p>\n<pre class=\" language-php\"><code class=\" language-php\"><span class=\"token variable\">Fatal error: Allowed memory size of 2097152 bytes exhausted \n(tried to allocate 5242912 bytes) \nin \/mnt\/w\/localhost\/test\/php85\/error_handlers.php on line 6\nStack trace:\n#0 file.php(...): str_repeat('A', 5242880)\n#1 file.php(...): my_heavy_function()\n#2 {main}\n<\/span> <\/code><\/pre>\n<p style=\"text-align: left; padding-top: 20px;\">Poprawka ta jest bezpo\u015brednio powi\u0105zana z inn\u0105, dodan\u0105 w ramach tej aktualizacji funkcjonalno\u015bci\u0105:<\/p>\n    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_4ofm809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4><strong>Nowe funkcje get_error_handler() i get_exception_handler()<\/strong><\/h4>\n<p style=\"text-align: left;\">Niezale\u017cnie od tego, \u017ce tworzenie w\u0142asnych regu\u0142 i mechanizm\u00f3w obs\u0142ugi wyj\u0105tk\u00f3w oraz b\u0142\u0119d\u00f3w na wypadek wyst\u0105pienia okre\u015blonej nieprawid\u0142owo\u015bci jest od dawna mo\u017cliwe, tak do PHP 8.5 nie istnia\u0142 \u017caden bezpo\u015bredni spos\u00f3b ustalenia, jaki handler jest przy tym aktywny.<\/p>\n<pre class=\" language-php\"><code class=\" language-php\"><span class=\"token variable\">\/**\n * Returns the currently set exception handler, or null if none is set.\n * @return callable|null\n *\/\nfunction get_exception_handler(): ?callable {}\n<\/span> <\/code><\/pre>\n<p style=\"text-align: left; padding-top: 20px;\">\nWprowadzona poprawka u\u0142atwia proces debugowania, bez uciekania si\u0119 do u\u017cytku wcze\u015bniejszych niepor\u0119cznych metod przy ustalaniu stanu konfiguracji.<\/p>\n    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_e2wk809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4><strong>Clone With jako hybryda konstruktu j\u0119zykowego i funkcji<\/strong><\/h4>\n<p style=\"text-align: left;\">Od teraz mo\u017cna przypisywa\u0107 nowe w\u0142a\u015bciwo\u015bci klonowanym obiektom w czasie, gdy ma to miejsce.<\/p>\n<pre class=\" language-php\"><code class=\" language-php\"><span class=\"token variable\">readonly class Color\n{\n    public function __construct(\n        public int $red,\n        public int $green,\n        public int $blue,\n        public int $alpha = 255,\n    ) {}\n\n    public function withAlpha(int $alpha): self\n    {\n        return clone($this, [\n            'alpha' =&gt; $alpha,\n        ]);\n    }\n}\n\n$blue = new Color(79, 91, 147);\n$transparentBlue = $blue-&gt;withAlpha(128);\n<\/span> <\/code><\/pre>\n<p style=\"text-align: left; padding-top: 20px;\">Zadanie to uda si\u0119 zrealizowa\u0107 poprzez przekazanie tablicy asocjacyjnej do funkcji <code>clone()<\/code>. Wcze\u015bniej do osi\u0105gni\u0119cia takiego rezultatu s\u0142u\u017cy\u0142y mniej efektywne metody, szczeg\u00f3lnie w przypadku w\u0142a\u015bciwo\u015bci tylko do odczytu.<br>Nowo zaproponowana sk\u0142adnia i przekszta\u0142cenie <code>clone<\/code> w konstrukt j\u0119zykowy pozwala jednak upro\u015bci\u0107 ten proces.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_u4s9809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4><strong>Closures (domkni\u0119cia w wyra\u017ceniach sta\u0142ych)<\/strong><\/h4>\n<p style=\"text-align: left;\">PHP 8.5 umo\u017cliwi wykorzystanie statycznych domkni\u0119\u0107 i obiekt\u00f3w wywo\u0142ywalnych (First-Class Callables) w atrybutach, sta\u0142ych i sta\u0142ych klas oraz warto\u015bciach domy\u015blnych w\u0142a\u015bciwo\u015bci.<\/p>\n<pre class=\" language-php\"><code class=\" language-php\"><span class=\"token variable\">final class PostsController\n{\n    #[AccessControl(static function (\n        Request $request,\n        Post $post,\n    ): bool {\n        return $request-&gt;user === $post-&gt;getAuthor();\n    })]\n    public function update(\n        Request $request,\n        Post $post,\n    ): Response {\n        \/\/ ...\n    }\n}<\/span> <\/code><\/pre>    <\/div>\n<\/div>\n<!-- \/module text -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_kaxc809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_caf9809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_p7r4809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h3 style=\"text-align: left;\">Inne zmiany i nowe funkcjonalno\u015bci<\/h3>\n<p style=\"text-align: left;\">Opr\u00f3cz wskazanych usprawnie\u0144, PHP 8.5 wycofuje z konstrukcji j\u0119zykowej przestarza\u0142e opcje, uzupe\u0142niaj\u0105c r\u00f3wnocze\u015bnie kod o te bardziej u\u017cyteczne.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module image -->\n<div  class=\"module module-image tb_05nh809 image-center rounded drop-shadow  tf_mw\" data-lazy=\"1\">\n        <div class=\"image-wrap tf_rel tf_mw\">\n            <img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"200\" src=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/small-image2.jpg\" class=\"wp-post-image wp-image-8129\" title=\"PHP 8.5 \u2013 co nowego?\" alt=\"Jakie inne poprawki wdro\u017cono przy okazji PHP 8.5? Lista zmian.\" srcset=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/small-image2.jpg 600w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/small-image2-300x100.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/>    \n        <\/div>\n    <!-- \/image-wrap -->\n    \n        <\/div>\n<!-- \/module image -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_cm31809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_izvu809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_84aa809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p style=\"text-align: left;\">Wpo\u015br\u00f3d kilkunastu wdro\u017conych modyfikacji znalaz\u0142o si\u0119 te\u017c par\u0119 ciekawostek.<\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: bold;\">Oto zatem pozosta\u0142e zmiany zaistnia\u0142e w PHP 8.5:<\/span><\/p>\n<ul>\n<li style=\"text-align: left;\"><strong>atrybut<\/strong> <code>#[\\Deprecated]<\/code> \u2013 wprowadzony przy okazji 8.4 dla funkcji, metod i sta\u0142ych klas b\u0119dzie od teraz obejmowa\u0142 tak\u017ce cechy i sta\u0142e globalne;<\/li>\n<li style=\"text-align: left;\"><strong>statyczna asymetryczna widoczno\u015b\u0107<\/strong> \u2013 uwzgl\u0119dniono obs\u0142ug\u0119 funkcji Asymmetric Visibility dla w\u0142a\u015bciwo\u015bci statycznych;<\/li>\n<li style=\"text-align: left;\"><strong>dodanie sta\u0142ej<\/strong> <code>PHP_BUILD_DATE<\/code> \u2013 pozwala okre\u015bli\u0107 dok\u0142adn\u0105 dat\u0119 i godzin\u0119 kompilacji binarki PHP;<\/li>\n<li style=\"text-align: left;\"><strong>atrybut<\/strong> <code>#[\\Override]<\/code> \u2013 od wersji PHP 8.5 mo\u017ce by\u0107 stosowany do w\u0142a\u015bciwo\u015bci klas;<\/li>\n<li><span style=\"letter-spacing: normal;\"><strong>nowa klasa<\/strong> <code>IntlListFormatter<\/code> \u2013 dodana do rozszerzenia Intl formatuje elementy listy zgodnie z lokalnymi regu\u0142ami (j\u0119zyk oraz region);<\/span><\/li>\n<li style=\"text-align: left;\"><strong>oznaczanie w\u0142a\u015bciwo\u015bci jako<\/strong> <code>final<\/code> \u2013 od danej aktualizacji mo\u017cna tego dokona\u0107 bezpo\u015brednio w parametrach konstruktora;<\/li>\n<li style=\"text-align: left;\"><strong>atrybut<\/strong> <code>#[\\DelayedTargetValidation]<\/code> \u2013 b\u0119dzie wycisza\u0107 b\u0142\u0119dy zaistnia\u0142e zbyt wcze\u015bnie, tzn. w sytuacji, gdy atrybuty s\u0105 ju\u017c weryfikowane, a ich obiekty docelowe nie zosta\u0142y jeszcze zdefiniowane;<\/li>\n<li style=\"text-align: left;\"><strong>sta\u0142e globalne mog\u0105 mie\u0107 atrybuty<\/strong> \u2013 zmiana ta pozwala za\u0142\u0105czy\u0107 dodatkowe metadane przy konfiguracji.<\/li>\n<\/ul>\n<p><strong>\u00a0<\/strong><\/p>\n<p><span style=\"font-weight: bold;\">Inne modyfikacje w PHP 8.5:<\/span><\/p>\n<ul>\n<li><strong>dyrektywa<\/strong> <code>max_memory_limit<\/code> \u2013 ustawia maksymaln\u0105, nieprzekraczaln\u0105 warto\u015b\u0107 pami\u0119ci dla wykonania skryptu. Poprawka ta uniemo\u017cliwia obej\u015bcie jej za pomoc\u0105 funkcji <code>ini_set()<\/code>;<\/li>\n<li><strong>nowa flaga<\/strong> <code>FILTER_THROW_ON_FAILURE<\/code> \u2013 wskazana funkcjonalno\u015b\u0107 spowoduje wyrzucenie wyj\u0105tku w sytuacji niepowodzenia walidacji;<\/li>\n<li><strong>polecenie <\/strong> <code>php --ini=diff<\/code> \u2013 pozwala ustali\u0107, kt\u00f3re dyrektywy zosta\u0142y dodane\/r\u00f3\u017cni\u0105 si\u0119 wzgl\u0119dem domy\u015blnej konfiguracji;<\/li>\n<li><strong>rozszerzenia dla<\/strong> <code>Intl<\/code> \u2013 aby ustali\u0107, czy wobec istniej\u0105cych w danym regionie standard\u00f3w skrypty zapisuje si\u0119 od prawej do lewej (tyczy si\u0119 to np. j\u0119zyka arabskiego) uwzgl\u0119dniono funkcj\u0119 <code>locale_is_right_to_left<\/code> oraz metod\u0119 <code>Locale::isRightToLeft<\/code>;<\/li>\n<li><strong>parser URI<\/strong> \u2013 dostarcza nowy, zgodny ze standardami RFC 3986 i WHATWG URL, spos\u00f3b obs\u0142ugi i walidacji adres\u00f3w URL i URI;<\/li>\n<li><strong>funkcja<\/strong> <code>curl_multi_get_handles()<\/code> dla <code>cURL<\/code> \u2013 umo\u017cliwi pobranie tablicy obiekt\u00f3w <code>CurlHandle<\/code> z <code>CurlMultiHandle<\/code>;<\/li>\n<li><strong>dodanie funkcjonalno\u015bci dla<\/strong> <code>setcookie()<\/code> i <code>setrawcookie()<\/code> \u2013 od wersji PHP 8.5 obie funkcje obs\u0142uguj\u0105 klucz: \u201ePartitioned\u201d. Pozwala on na przechowywanie ciastek w pami\u0119ci podr\u0119cznej przegl\u0105darki w izolacji, chroni\u0105c dane u\u017cytkownika.<\/li>\n<\/ul>\n<p><strong>\u00a0<\/strong><\/p>\n<h4><strong>Wycofane elementy i uznane za przestarza\u0142e<\/strong><\/h4>\n<p>W\u015br\u00f3d dokonanych w PHP 8.5 poprawek nie zabrak\u0142o r\u00f3wnie\u017c aspekt\u00f3w z wygasaj\u0105cym wsparciem.<\/p>\n<p><span style=\"font-weight: bold;\">Oto wi\u0119c dodatkowe elementy, kt\u00f3re zosta\u0142y w PHP 8.5 zdeprecjonowane:<\/span><\/p>\n<ul>\n<li><strong>niestandardowe nazwy rzutowania<\/strong> \u2013 takie jak <code>boolean<\/code>, <code>integer<\/code>, <code>double<\/code> czy <code>binary<\/code> zosta\u0142y wycofane. Zamiast nich zaleca si\u0119 u\u017cywa\u0107 odpowiednio: <code>bool<\/code>, <code>int<\/code>, <code>float<\/code> oraz <code>string<\/code>;<\/li>\n<li><strong>powt\u00f3rna deklaracja sta\u0142ych<\/strong> \u2013 nie b\u0119dzie od wersji PHP 8.5 mo\u017cliwa;<\/li>\n<li><strong>metody<\/strong> <code>__sleep()<\/code> i <code>__wakeup()<\/code> \u2013 ich miejsce zajm\u0105 <code>__serialize()<\/code> i <code>__unserialize()<\/code>;<\/li>\n<li><strong>ustawienie INI<\/strong> <code>disabled_classes<\/code> \u2013 zosta\u0142o usuni\u0119te;<\/li>\n<li><strong>u\u017cytek tzw. backtick\u00f3w<\/strong> <code>`<\/code> \u2013 do realizacji polece\u0144 w pow\u0142oce shell nie jest ju\u017c zalecany;<\/li>\n<li><strong>podanie warto\u015bci<\/strong> <code>null<\/code> <strong>jako klucza (przesuni\u0119cie) tablicy lub wobec wywo\u0142ywania<\/strong> <code>array_key_exists()<\/code> \u2013 zosta\u0142o zdeprecjonowane;<\/li>\n<li><strong>wykorzystywanie \u015brednika do zako\u0144czenia instrukcji<\/strong> <code>case<\/code> \u2013 od wydania PHP 8.5 nale\u017cy u\u017cywa\u0107 dwukropka.<\/li>\n<\/ul>    <\/div>\n<\/div>\n<!-- \/module text -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_zrfy809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_xgdj809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_ytuz809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h3 style=\"text-align: left;\">Jak ustawi\u0107 odpowiedni\u0105 wersj\u0119 PHP?<\/h3>\n<p style=\"text-align: left;\" align=\"LEFT\">Aby dokona\u0107 zmiany w tym zakresie wystarczy odznaczy\u0107 w panelu hostingu w\u0142a\u015bciw\u0105 opcj\u0119.<br>Prze\u015bled\u017a kroki zawarte poni\u017cej, aby dowiedzie\u0107 si\u0119, jak nale\u017cy to zrobi\u0107.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module box -->\n<div  class=\"module module-box tb_6m26809 \" data-lazy=\"1\">\n    <div class=\"module-box-content ui  yellow\">\n                <div class=\"tb_text_wrap\"><p style=\"text-align: left; margin-bottom: 0px;\"><strong>Warto wiedzie\u0107:<\/strong> Pami\u0119taj, \u017ce aktualizacja PHP 8.5 nie oznacza z automatu 100% zgodno\u015bci z posiadan\u0105 architektur\u0105 czy systemem plik\u00f3w.<br>Jednak w razie, gdy napotkasz b\u0142\u0119dy, zawsze mo\u017cesz wr\u00f3ci\u0107 do wcze\u015bniejszych ustawie\u0144 i dzia\u0142aj\u0105cej wersji.<\/p><\/div>\n    <\/div>\n<\/div>\n<!-- \/module box -->\n        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_s3vz809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_g508809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_6frq809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4 style=\"text-align: left;\"><strong>Krok 1<\/strong><\/h4>\n<p style=\"text-align: left;\">Gdy zalogujesz si\u0119 do panelu hostingu zajrzyj do zak\u0142adki: <strong>\u201eDodatkowe funkcje\u201d<\/strong> i wybierz z niej odno\u015bnik do: <strong>\u201eSelect PHP version\u201d<\/strong>.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module image -->\n<div  class=\"module module-image tb_zxeq809 image-center rounded drop-shadow  tf_mw\" data-lazy=\"1\">\n        <div class=\"image-wrap tf_rel tf_mw\">\n            <img loading=\"lazy\" decoding=\"async\" width=\"1035\" height=\"627\" src=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-1.png\" class=\"wp-post-image wp-image-6193\" title=\"Krok 1\" alt=\"Jak zmieni\u0107 wersj\u0119 PHP na inn\u0105? Krok 1.\" srcset=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-1.png 1035w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-1-300x182.png 300w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-1-1024x620.png 1024w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-1-768x465.png 768w\" sizes=\"auto, (max-width: 1035px) 100vw, 1035px\" \/>    \n        <\/div>\n    <!-- \/image-wrap -->\n    \n        <\/div>\n<!-- \/module image -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_so79809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_8lik809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_60if809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h4 style=\"text-align: left;\"><strong>Krok 2<\/strong><\/h4>\n<p style=\"text-align: left;\">W sekcji: <strong>\u201eBie\u017c\u0105ca wersja PHP\u201d<\/strong> przejd\u017a do rozwijalnej listy i wybierz w\u0142a\u015bciw\u0105 opcj\u0119. Potwierd\u017a dzia\u0142anie poprzez przycisk: <strong>\u201eUstaw jako bie\u017c\u0105c\u0105\u201d<\/strong>.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module image -->\n<div  class=\"module module-image tb_wi0c809 image-center rounded drop-shadow  tf_mw\" data-lazy=\"1\">\n        <div class=\"image-wrap tf_rel tf_mw\">\n            <img loading=\"lazy\" decoding=\"async\" width=\"1035\" height=\"627\" src=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-2.png\" class=\"wp-post-image wp-image-6194\" title=\"Krok 2\" alt=\"Jak zmieni\u0107 wersj\u0119 PHP na inn\u0105? Krok 2.\" srcset=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-2.png 1035w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-2-300x182.png 300w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-2-1024x620.png 1024w, https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2024\/11\/Krok-2-768x465.png 768w\" sizes=\"auto, (max-width: 1035px) 100vw, 1035px\" \/>    \n        <\/div>\n    <!-- \/image-wrap -->\n    \n        <\/div>\n<!-- \/module image -->        <div  data-lazy=\"1\" class=\"module_subrow themify_builder_sub_row tf_w col_align_top tb_col_count_1 tb_fyni809\">\n                <div  data-lazy=\"1\" class=\"module_column sub_column col-full tb_sle9809 first\">\n                            <\/div>\n                    <\/div>\n        <!-- module text -->\n<div  class=\"module module-text tb_2xxc809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <h3 style=\"text-align: left;\">Podsumowanie<\/h3>\n<p style=\"text-align: left;\">PHP 8.5 to jedna z bardziej u\u017cytecznych aktualizacji, zw\u0142aszcza od du\u017cego wydania PHP 8.0, odpowiadaj\u0105cego za pewne rewolucyjne zmiany. Bie\u017c\u0105ca wersja nie jest tak znacz\u0105ca w skutkach, jednak wdra\u017ca szereg drobnych, cho\u0107 istotnych ulepsze\u0144, usprawniaj\u0105cych prac\u0119 z kodem, przyczyniaj\u0105c si\u0119 r\u00f3wnocze\u015bnie do jego \u0142atwiejszego czytania i generowania.<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module text -->\n<div  class=\"module module-text tb_a8c8809   \" data-lazy=\"1\">\n        <div  class=\"tb_text_wrap\">\n        <p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>    <\/div>\n<\/div>\n<!-- \/module text --><!-- module box -->\n<div  class=\"module module-box tb_rt71809 \" data-lazy=\"1\">\n    <div class=\"module-box-content ui  light-green\">\n                <div class=\"tb_text_wrap\"><p>Odbieramy telefony, odpisujemy na maile, nie ukrywamy koszt\u00f3w, a dodatkowo oferujemy najszybsze pakiety hostingowe na rynku. Uwa\u017casz, \u017ce to zwroty marketingowe? Sprawd\u017a sam\/a!<\/p>\n<p>Je\u015bli nie b\u0119dziesz zadowolony\/a, zwr\u00f3cimy Ci pieni\u0105dze.<br \/><strong>Twoje strony i sklepy przeniesiemy za darmo!<\/strong><\/p>\n<p><a style=\"color: #fff; font-weight: 600;\" href=\"https:\/\/jchost.pl\/hosting\/wordpress\/\" target=\"_blank\" rel=\"noopener\">Hosting WordPress<\/a> &#8211; <a style=\"color: #fff; font-weight: 600;\" href=\"https:\/\/jchost.pl\/hosting\/magento\/\" target=\"_blank\" rel=\"noopener\">Hosting Magento<\/a><\/p><\/div>\n    <\/div>\n<\/div>\n<!-- \/module box -->\n<!-- module box -->\n<div  class=\"module module-box tb_kv7t809 \" data-lazy=\"1\">\n    <div class=\"module-box-content ui  tb_default_color\">\n                <div class=\"tb_text_wrap\"><p>Je\u017celi masz jakiekolwiek pytania, skontaktuj si\u0119 z nami! <a href=\"https:\/\/www.jchost.pl\/clients\/submitticket\/\" target=\"_blank\" rel=\"noopener\">Kliknij tutaj<\/a>.<\/p>\n<p>Chcesz dowiedzie\u0107 si\u0119 o nas troch\u0119 wi\u0119cej? Przejd\u017a na <a href=\"https:\/\/www.jchost.pl\/\" target=\"_blank\" rel=\"noopener\">stron\u0119 JCHost.pl<\/a>.<\/p><\/div>\n    <\/div>\n<\/div>\n<!-- \/module box -->\n        <\/div>\n                    <div  data-lazy=\"1\" class=\"module_column tb-column col4-1 tb_mf4r809 last\">\n                            <\/div>\n                        <\/div>\n        <\/div>\n        <\/div>\n<!--\/themify_builder_content-->","protected":false},"excerpt":{"rendered":"<p>PHP 8.5 \u2013 co nowego? Test wydajno\u015bci PHP 8.5 Wdro\u017cona 20 listopada 2025 roku aktualizacja PHP 8.5 wprowadza kilka u\u017cytecznych nowo\u015bci usprawniaj\u0105cych prac\u0119 programist\u00f3w, odpowiadaj\u0105c r\u00f3wnocze\u015bnie za wi\u0119ksz\u0105 przejrzysto\u015b\u0107 i czytelno\u015b\u0107 kodu. Aktualna kompilacja naprawia 94 og\u00f3lnych b\u0142\u0119d\u00f3w, w tym najwi\u0119cej dotycz\u0105cych podstawowych funkcjonalno\u015bci (31) i Opcache (17). A r\u00f3wnocze\u015bnie dodaje szereg u\u0142atwiaj\u0105cych dzia\u0142ania funkcji, [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":8135,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8130","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PHP 8.5 \u2013 co nowego? Test wydajno\u015bci - Blog o hostingu i dla hostingu<\/title>\n<meta name=\"description\" content=\"Jakie zmiany i ulepszenia wprowadza PHP 8.5 oraz kto skorzysta na wdro\u017conych poprawkach najwi\u0119cej? Zobacz list\u0119 modyfikacji.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci - Blog o hostingu i dla hostingu\" \/>\n<meta property=\"og:description\" content=\"Jakie zmiany i ulepszenia wprowadza PHP 8.5 oraz kto skorzysta na wdro\u017conych poprawkach najwi\u0119cej? Zobacz list\u0119 modyfikacji.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog o hostingu i dla hostingu\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/jchostpl\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-17T10:20:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"879\" \/>\n\t<meta property=\"og:image:height\" content=\"469\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"sukceswizard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"sukceswizard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/\"},\"author\":{\"name\":\"sukceswizard\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#\\\/schema\\\/person\\\/f641175119cb0cccb8a23399303adee1\"},\"headline\":\"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci\",\"datePublished\":\"2025-12-17T10:20:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/\"},\"wordCount\":1572,\"publisher\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/featured-image11.jpg\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/\",\"url\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/\",\"name\":\"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci - Blog o hostingu i dla hostingu\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/featured-image11.jpg\",\"datePublished\":\"2025-12-17T10:20:17+00:00\",\"description\":\"Jakie zmiany i ulepszenia wprowadza PHP 8.5 oraz kto skorzysta na wdro\u017conych poprawkach najwi\u0119cej? Zobacz list\u0119 modyfikacji.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/featured-image11.jpg\",\"contentUrl\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/featured-image11.jpg\",\"width\":879,\"height\":469,\"caption\":\"Jak prezentuje si\u0119 najnowsza wersja PHP 8.5?\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/php-8-5-co-nowego-test-wydajnosci\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/\",\"name\":\"Blog o hostingu i dla hostingu\",\"description\":\"Blog hostingowy dla ka\u017cdego!\",\"publisher\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#organization\",\"name\":\"blog.jchost.pl\",\"url\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/blog-hostingowy-logo-JCHost.jpg\",\"contentUrl\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/blog-hostingowy-logo-JCHost.jpg\",\"width\":229,\"height\":80,\"caption\":\"blog.jchost.pl\"},\"image\":{\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/jchostpl\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC6myB18cMX1a5bAJ6WChQPw\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/#\\\/schema\\\/person\\\/f641175119cb0cccb8a23399303adee1\",\"name\":\"sukceswizard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/96bfbcc4e19c4b580f1c359c99b270a18e7ffef6c1a3f2b521b39b1cf8ab75fb?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/96bfbcc4e19c4b580f1c359c99b270a18e7ffef6c1a3f2b521b39b1cf8ab75fb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/96bfbcc4e19c4b580f1c359c99b270a18e7ffef6c1a3f2b521b39b1cf8ab75fb?s=96&d=mm&r=g\",\"caption\":\"sukceswizard\"},\"url\":\"https:\\\/\\\/jchost.pl\\\/blog\\\/author\\\/sukceswizard\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci - Blog o hostingu i dla hostingu","description":"Jakie zmiany i ulepszenia wprowadza PHP 8.5 oraz kto skorzysta na wdro\u017conych poprawkach najwi\u0119cej? Zobacz list\u0119 modyfikacji.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/","og_locale":"pl_PL","og_type":"article","og_title":"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci - Blog o hostingu i dla hostingu","og_description":"Jakie zmiany i ulepszenia wprowadza PHP 8.5 oraz kto skorzysta na wdro\u017conych poprawkach najwi\u0119cej? Zobacz list\u0119 modyfikacji.","og_url":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/","og_site_name":"Blog o hostingu i dla hostingu","article_publisher":"https:\/\/www.facebook.com\/jchostpl\/","article_published_time":"2025-12-17T10:20:17+00:00","og_image":[{"width":879,"height":469,"url":"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11.jpg","type":"image\/jpeg"}],"author":"sukceswizard","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"sukceswizard","Szacowany czas czytania":"10 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/#article","isPartOf":{"@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/"},"author":{"name":"sukceswizard","@id":"https:\/\/jchost.pl\/blog\/#\/schema\/person\/f641175119cb0cccb8a23399303adee1"},"headline":"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci","datePublished":"2025-12-17T10:20:17+00:00","mainEntityOfPage":{"@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/"},"wordCount":1572,"publisher":{"@id":"https:\/\/jchost.pl\/blog\/#organization"},"image":{"@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/#primaryimage"},"thumbnailUrl":"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11.jpg","articleSection":["Uncategorized"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/","url":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/","name":"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci - Blog o hostingu i dla hostingu","isPartOf":{"@id":"https:\/\/jchost.pl\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/#primaryimage"},"image":{"@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/#primaryimage"},"thumbnailUrl":"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11.jpg","datePublished":"2025-12-17T10:20:17+00:00","description":"Jakie zmiany i ulepszenia wprowadza PHP 8.5 oraz kto skorzysta na wdro\u017conych poprawkach najwi\u0119cej? Zobacz list\u0119 modyfikacji.","breadcrumb":{"@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/#primaryimage","url":"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11.jpg","contentUrl":"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2025\/12\/featured-image11.jpg","width":879,"height":469,"caption":"Jak prezentuje si\u0119 najnowsza wersja PHP 8.5?"},{"@type":"BreadcrumbList","@id":"https:\/\/jchost.pl\/blog\/php-8-5-co-nowego-test-wydajnosci\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/jchost.pl\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP 8.5 \u2013 co nowego? Test wydajno\u015bci"}]},{"@type":"WebSite","@id":"https:\/\/jchost.pl\/blog\/#website","url":"https:\/\/jchost.pl\/blog\/","name":"Blog o hostingu i dla hostingu","description":"Blog hostingowy dla ka\u017cdego!","publisher":{"@id":"https:\/\/jchost.pl\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jchost.pl\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/jchost.pl\/blog\/#organization","name":"blog.jchost.pl","url":"https:\/\/jchost.pl\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/jchost.pl\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2017\/11\/blog-hostingowy-logo-JCHost.jpg","contentUrl":"https:\/\/jchost.pl\/blog\/wp-content\/uploads\/2017\/11\/blog-hostingowy-logo-JCHost.jpg","width":229,"height":80,"caption":"blog.jchost.pl"},"image":{"@id":"https:\/\/jchost.pl\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/jchostpl\/","https:\/\/www.youtube.com\/channel\/UC6myB18cMX1a5bAJ6WChQPw"]},{"@type":"Person","@id":"https:\/\/jchost.pl\/blog\/#\/schema\/person\/f641175119cb0cccb8a23399303adee1","name":"sukceswizard","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/96bfbcc4e19c4b580f1c359c99b270a18e7ffef6c1a3f2b521b39b1cf8ab75fb?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/96bfbcc4e19c4b580f1c359c99b270a18e7ffef6c1a3f2b521b39b1cf8ab75fb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/96bfbcc4e19c4b580f1c359c99b270a18e7ffef6c1a3f2b521b39b1cf8ab75fb?s=96&d=mm&r=g","caption":"sukceswizard"},"url":"https:\/\/jchost.pl\/blog\/author\/sukceswizard\/"}]}},"_links":{"self":[{"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/posts\/8130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/comments?post=8130"}],"version-history":[{"count":58,"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/posts\/8130\/revisions"}],"predecessor-version":[{"id":8189,"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/posts\/8130\/revisions\/8189"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/media\/8135"}],"wp:attachment":[{"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/media?parent=8130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/categories?post=8130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jchost.pl\/blog\/wp-json\/wp\/v2\/tags?post=8130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}