Tази директива важи само когато се ВИКА функцията/методът, а не когато се дефинира.
Дори и във файла с дефиницията на функцията/класът да има declare(strict_types=0); или declare(strict_types=1); то не играе роля.
Демек, тази директива казва как да се изпълнява, а не как да се дефинира една функция.
PHP проверява типовете когато се извика функцията, а не когато се декларира.