oliverdavies.uk/content/node.e2991eb4-1aee-4d04-9045-989159a9b64f.yml

94 lines
2.7 KiB
YAML

uuid:
- value: e2991eb4-1aee-4d04-9045-989159a9b64f
langcode:
- value: en
type:
- target_id: daily_email
target_type: node_type
target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7
revision_timestamp:
- value: '2025-05-11T09:00:14+00:00'
revision_uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
revision_log: { }
status:
- value: true
uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
title:
- value: 'Strict typing in PHP'
created:
- value: '2024-05-04T00:00:00+00:00'
changed:
- value: '2025-05-11T09:00:14+00:00'
promote:
- value: false
sticky:
- value: false
default_langcode:
- value: true
revision_translation_affected:
- value: true
path:
- alias: /daily/2024/05/04/strict-typing-in-php
langcode: en
body:
- value: |
<p>I prefer writing and working with strictly typed code.</p>
<p>One of the major improvements in PHP has been the option to enable strict types.</p>
<p>For example, this code will usually not error and give the result:</p>
<pre><code class="php">function add(int $a, int $b): void
{
var_dump($a + $b);
}
add(1, '1');
</code></pre>
<p>However, I'd prefer if it failed as I'm passing the function an integer and a string, but specifying they should both be integers.</p>
<p>Fixing this is simple, by adding this line to the top of the file:</p>
<pre><code class="php">declare(strict_types=1);
</code></pre>
<p>I add this to every PHP file by default.</p>
<p>I want my code to be as strict and predictable as possible, and to error when I want it to and make any bugs more explicit and easier to find and fix.</p>
format: full_html
processed: |
<p>I prefer writing and working with strictly typed code.</p>
<p>One of the major improvements in PHP has been the option to enable strict types.</p>
<p>For example, this code will usually not error and give the result:</p>
<pre><code class="php">function add(int $a, int $b): void
{
var_dump($a + $b);
}
add(1, '1');
</code></pre>
<p>However, I'd prefer if it failed as I'm passing the function an integer and a string, but specifying they should both be integers.</p>
<p>Fixing this is simple, by adding this line to the top of the file:</p>
<pre><code class="php">declare(strict_types=1);
</code></pre>
<p>I add this to every PHP file by default.</p>
<p>I want my code to be as strict and predictable as possible, and to error when I want it to and make any bugs more explicit and easier to find and fix.</p>
summary: null
field_daily_email_cta: { }