<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="https://sandfox.me/assets/xml/atom.xsl" type="text/xsl media="all"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom">
  <title>Sand Fox (Posts about php 8)</title>
  <id>https://sandfox.me/tags/php-8.xml</id>
  <updated>2026-09-02T00:44:45Z</updated>
  <author>
    <name>Anton Smirnov</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://sandfox.me/tags/php-8.xml"/>
  <link rel="alternate" type="text/html" href="https://sandfox.me/tags/php-8.html"/>
  <generator uri="https://getnikola.com/">Nikola</generator>
  <entry>
    <title>IsResource</title>
    <id>https://sandfox.me/php/is-resource.html</id>
    <updated>2021-09-28T04:42:00+03:00</updated>
    <published>2021-09-28T04:42:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/php/is-resource.html"/>
    <summary type="html">&lt;p&gt;Inspired by &lt;a class="reference external" href="https://externals.io/message/116127"&gt;a recent discussion in the PHP Internals&lt;/a&gt;, I decided to provide a userland solution.
Check this:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code php"&gt;&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-1" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-1" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-1"&gt;&lt;/a&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-2" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-2" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-3" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-3" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;$hash&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;hash_init&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'md5'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-4" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-4" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-5" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-5" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-5"&gt;&lt;/a&gt;&lt;span class="c1"&gt;// vanilla functions:&lt;/span&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-6" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-6" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-6"&gt;&lt;/a&gt;&lt;span class="nb"&gt;is_resource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$hash&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true in PHP &amp;lt;= 7.1, false in PHP &amp;gt;= 7.2&lt;/span&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-7" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-7" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-7"&gt;&lt;/a&gt;&lt;span class="nb"&gt;get_resource_type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$hash&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "Hash Context" in PHP &amp;lt;= 7.1, various errors otherwise&lt;/span&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-8" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-8" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-8"&gt;&lt;/a&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-9" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-9" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-9"&gt;&lt;/a&gt;&lt;span class="c1"&gt;// library functions:&lt;/span&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-10" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-10" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-10"&gt;&lt;/a&gt;&lt;span class="nx"&gt;\Arokettu\IsResource\is_resource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$hash&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;a id="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-11" name="rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-11" href="https://sandfox.me/php/is-resource.html#rest_code_fabbbe7d95ee4e2b9dc0d4f3ac61c74f-11"&gt;&lt;/a&gt;&lt;span class="nx"&gt;\Arokettu\IsResource\get_resource_type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$hash&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "Hash Context"&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Get it on my dev portal: &lt;a class="reference external" href="https://sandfox.dev/php/is-resource.html"&gt;https://sandfox.dev/php/is-resource.html&lt;/a&gt;&lt;/p&gt;</summary>
    <category term="is_resource" label="is_resource"/>
    <category term="php-8" label="php 8"/>
    <category term="php-81" label="php 8.1"/>
  </entry>
  <entry>
    <title>PHP 8.0 Comparison Change</title>
    <id>https://sandfox.me/php/php-8-comparison.html</id>
    <updated>2020-10-22T23:00:00+03:00</updated>
    <published>2020-10-22T23:00:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/php/php-8-comparison.html"/>
    <summary type="html">&lt;div&gt;&lt;p&gt;Another new thing in PHP 8.0 will be slightly less madness in non strict value comparison.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sandfox.me/php/php-8-comparison.html"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</summary>
    <category term="php-8" label="php 8"/>
  </entry>
  <entry>
    <title>OOP in PHP 4 and 8</title>
    <id>https://sandfox.me/php/php-4-oop-in-8.html</id>
    <updated>2020-10-02T15:03:00+03:00</updated>
    <published>2020-10-02T15:03:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/php/php-4-oop-in-8.html"/>
    <summary type="html">&lt;p&gt;Deprecation of class name constructors means that you no longer can write OOP code
that works both in PHP 4 and PHP 8 without some hackery.
&lt;a class="reference external" href="https://3v4l.org/ZBTcC"&gt;This works however&lt;/a&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code php"&gt;&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-1" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-1" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-1"&gt;&lt;/a&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-2" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-2" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-3" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-3" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-3"&gt;&lt;/a&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WorksIn4And8&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-4" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-4" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-4"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-5" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-5" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-5"&gt;&lt;/a&gt;    &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;$int&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-6" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-6" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-6"&gt;&lt;/a&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-7" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-7" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-7"&gt;&lt;/a&gt;    &lt;span class="c1"&gt;// Regular method in PHP 4&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-8" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-8" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-8"&gt;&lt;/a&gt;    &lt;span class="c1"&gt;// Constructor in 5-8&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-9" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-9" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-9"&gt;&lt;/a&gt;    &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="fm"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-10" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-10" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-10"&gt;&lt;/a&gt;    &lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-11" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-11" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-11"&gt;&lt;/a&gt;        &lt;span class="nb"&gt;error_log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'__construct()'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-12" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-12" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-12"&gt;&lt;/a&gt;        &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$int&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-13" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-13" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-13"&gt;&lt;/a&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-14" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-14" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-15" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-15" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-15"&gt;&lt;/a&gt;    &lt;span class="c1"&gt;// Constructor in PHP 4&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-16" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-16" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-16"&gt;&lt;/a&gt;    &lt;span class="c1"&gt;// Constructor overridden by __construct in 5-7&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-17" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-17" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-17"&gt;&lt;/a&gt;    &lt;span class="c1"&gt;// Regular method in PHP 8&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-18" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-18" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-18"&gt;&lt;/a&gt;    &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;WorksIn4And8&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-19" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-19" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-19"&gt;&lt;/a&gt;    &lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-20" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-20" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-20"&gt;&lt;/a&gt;        &lt;span class="nb"&gt;error_log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'WorksIn4And8()'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-21" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-21" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-21"&gt;&lt;/a&gt;        &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$int&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-22" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-22" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-22"&gt;&lt;/a&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-23" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-23" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-23"&gt;&lt;/a&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-24" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-24" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-24"&gt;&lt;/a&gt;    &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getInt&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-25" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-25" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-25"&gt;&lt;/a&gt;    &lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-26" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-26" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-26"&gt;&lt;/a&gt;        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;int&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-27" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-27" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-27"&gt;&lt;/a&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-28" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-28" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-28"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-29" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-29" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-29"&gt;&lt;/a&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-30" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-30" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-30"&gt;&lt;/a&gt;&lt;span class="nv"&gt;$obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;WorksIn4And8&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;48&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-31" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-31" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-31"&gt;&lt;/a&gt;
&lt;a id="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-32" name="rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-32" href="https://sandfox.me/php/php-4-oop-in-8.html#rest_code_d0e9fd652e7c4e8789b5af87fd8fb2aa-32"&gt;&lt;/a&gt;&lt;span class="nb"&gt;var_dump&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$obj&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;getInt&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</summary>
    <category term="php-4" label="php 4"/>
    <category term="php-8" label="php 8"/>
  </entry>
  <entry>
    <title>PHP 8.0 Syntax Showcase</title>
    <id>https://sandfox.me/php/php-8-showcase.html</id>
    <updated>2020-09-30T16:54:00+03:00</updated>
    <published>2020-09-30T16:54:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/php/php-8-showcase.html"/>
    <summary type="html">&lt;p&gt;Since RC1 is released today, I decided to make a small demonstration of PHP 8.0 syntax features.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code php"&gt;&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-1" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-1" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-1"&gt;&lt;/a&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-2" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-2" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-3" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-3" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-3"&gt;&lt;/a&gt;&lt;span class="p"&gt;#[&lt;/span&gt;&lt;span class="nd"&gt;FuncAttribute&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-4" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-4" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-4"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;func&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;SplHeap&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nx"&gt;ArrayObject&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="k"&gt;null&lt;/span&gt; &lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;mixed&lt;/span&gt; &lt;span class="nv"&gt;$value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ArrayAccess&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="k"&gt;false&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-5" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-5" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-5"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-6" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-6" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-6"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;match&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="o"&gt;?-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;count&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-7" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-7" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-7"&gt;&lt;/a&gt;        &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;RuntimeException&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-8" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-8" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-8"&gt;&lt;/a&gt;        &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-9" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-9" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-9"&gt;&lt;/a&gt;    &lt;span class="p"&gt;};&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-10" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-10" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-11" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-11" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-12" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-12" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-12"&gt;&lt;/a&gt;&lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-13" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-13" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-13"&gt;&lt;/a&gt;    &lt;span class="nx"&gt;func&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;object&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ArrayObject&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-14" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-14" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-14"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;RuntimeException&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-15" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-15" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-15"&gt;&lt;/a&gt;    &lt;span class="c1"&gt;// ignore&lt;/span&gt;
&lt;a id="rest_code_3abb576dcb434265a3da0a0975e4c95b-16" name="rest_code_3abb576dcb434265a3da0a0975e4c95b-16" href="https://sandfox.me/php/php-8-showcase.html#rest_code_3abb576dcb434265a3da0a0975e4c95b-16"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</summary>
    <category term="php-8" label="php 8"/>
  </entry>
  <entry>
    <title>I released the first PHP 8 library ever</title>
    <id>https://sandfox.me/php/first-php-8-library.html</id>
    <updated>2020-07-03T22:12:00+03:00</updated>
    <published>2020-07-03T22:12:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/php/first-php-8-library.html"/>
    <summary type="html">&lt;p&gt;At least among the libraries listed on the Packagist.
On this Tuesday &lt;a class="reference external" href="https://packagist.org/packages/sandfoxme/bencode"&gt;sandfoxme/bencode&lt;/a&gt; was updated to 2.0 that requires PHP 8 as a minimum.
While it was meant mostly as an experiment and a joke,
it allowed me to try some new features like &lt;code class="docutils literal"&gt;Stringable&lt;/code&gt; interface and remove some old compatibility handling
thanks to &lt;code class="docutils literal"&gt;mbstring.func_overload&lt;/code&gt; being finally removed.&lt;/p&gt;</summary>
    <category term="php-8" label="php 8"/>
  </entry>
</feed>
