This is part of the Semicolon&Sons Code Diary - consisting of lessons learned on the job. You're in the PHP category.
Last Updated: 2024-11-21
I could not get this variable $smsCounter
to increment inside this PHP closure:
<?php
$smsCounter = 0;
Bus::assertDispatched(function (SendSms $job) use ($smsCounter) {
$smsCounter = $smsCounter + 1;
return true;
});
$this->assertEquals($smsCounter, 1);
The trick was to pass by reference instead. This enables the inner closure to modify
the outer. Note the use of an ampersand (&
) before the variable name below:
<?php
Bus::assertDispatched(function (SendSms $job) use (&$smsCounter) {
...
});
...