← All results

Historical compatibility for legacy nullable-via-default patterns

Group: Historical and legacy behavior · Category: historical · File: historical_nullable_array_default_null.php

References: - python-typing historical/deprecated groups inspiration - legacy PHP ecosystem usage before explicit nullable types were common

Analyzer results

AnalyzerVersionResultDiagnostics
phan 6.0.7Phan 6.0.7 php-ast version 1.1.3 PHP version used to run Phan: 8.5.9 Pass

No diagnostics reported.

phpstan 2.2.11PHPStan - PHP Static Analysis Tool 2.2.11 Pass

No diagnostics reported.

psalm 6.16.1Psalm 6.16.1@f1f5de594dc76faf8784e02d3dc4716c91c6f6ac
next: 7.0.0-beta19
Pass

No diagnostics reported.

mago 1.47.4mago 1.47.4 Pass

No diagnostics reported.

mir 0.72.1mir 0.72.1 Pass

No diagnostics reported.

phpantom 0.10.0phpantom_lsp 0.10.0 Pass

No diagnostics reported.

intelephense 1.18.5intelephense 1.18.5 Pass

No diagnostics reported.

phpactor 2026.07.22.0Phpactor 2026.07.22.0 Pass

No diagnostics reported.

phpy 0.2.0phpy 0.2.0 Pass

No diagnostics reported.

qodana 262.9437.196Qodana 262.9437.196 Pass

No diagnostics reported.

noverify 0.5.5NoVerify, version 0.5.5: built on: 2025.04.22 14:36:46 OS: r-kuchinskas arm64 Commit: 4774b82f8adc53fbef38f95e97af4b953b4d1529 Fail
historical_nullable_array_default_null.php:18: param $values miss matched with phpdoc type <<array<int>|null>> [funcParamTypeMissMatch]
Expectation diff
Line 18: Unexpected errors ["param $values miss matched with phpdoc type <<array<int>|null>> [funcParamTypeMissMatch]"]
steins 0.1.6steins 0.1.6 (2026-08-25 revision c13b4c7) Pass

No diagnostics reported.

phpstan-strict 2.2.11PHPStan - PHP Static Analysis Tool 2.2.11 Pass

No diagnostics reported.

psalm-next 7.0.0-beta19Psalm 7.0.0-beta19@7e751c06a756fa64dc4c759c09fe4a173afcb433 Pass

No diagnostics reported.

Source

<?php

declare(strict_types=1);

namespace Conformance\Tests\HistoricalNullableArrayDefaultNull;

/**
 * Historical compatibility for legacy nullable-via-default patterns.
 *
 * References:
 * - python-typing historical/deprecated groups inspiration
 * - legacy PHP ecosystem usage before explicit nullable types were common
 */

/**
 * @param array<int>|null $values
 */
function legacyNullableArray(?array $values = null): void
{
}

legacyNullableArray();
legacyNullableArray([1, 2, 3]);