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: |
I prefer writing and working with strictly typed code.
One of the major improvements in PHP has been the option to enable strict types.
For example, this code will usually not error and give the result:
function add(int $a, int $b): void
{
var_dump($a + $b);
}
add(1, '1');
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.
Fixing this is simple, by adding this line to the top of the file:
declare(strict_types=1);
I add this to every PHP file by default.
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.
format: full_html processed: |I prefer writing and working with strictly typed code.
One of the major improvements in PHP has been the option to enable strict types.
For example, this code will usually not error and give the result:
function add(int $a, int $b): void
{
var_dump($a + $b);
}
add(1, '1');
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.
Fixing this is simple, by adding this line to the top of the file:
declare(strict_types=1);
I add this to every PHP file by default.
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.
summary: null field_daily_email_cta: { }