PluginProbe
WPIDE – File Manager & Code Editor / 3.5.9
WPIDE – File Manager & Code Editor v3.5.9
3.5.9 3.5.8 3.5.7 2.0.14 2.0.15 2.0.16 2.0.2 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1 2.2 2.3 2.3.1 2.3.2 2.4.0 2.5 2.6 3.0 3.1 3.2 3.3 All 55 releases
← All changes | vendor/php-di/invoker/src/ParameterResolver/DefaultValueResolver.php +9 -6 3.23.5.9 View file →
@@ -1,5 +1,5 @@
1 -<?php
1 +<?php declare(strict_types=1);
2 2
3 3 namespace Invoker\ParameterResolver;
4 4
5 5 use ReflectionException;
@@ -6,10 +6,8 @@
6 6 use ReflectionFunctionAbstract;
7 7
8 8 /**
9 9 * Finds the default value for a parameter, *if it exists*.
10 - *
11 - * @author Matthieu Napoli <matthieu@mnapoli.fr>
12 10 */
13 11 class DefaultValueResolver implements ParameterResolver
14 12 {
15 13 public function getParameters(
@@ -15,9 +13,9 @@
15 13 public function getParameters(
16 14 ReflectionFunctionAbstract $reflection,
17 15 array $providedParameters,
18 16 array $resolvedParameters
19 - ) {
17 + ): array {
20 18 $parameters = $reflection->getParameters();
21 19
22 20 // Skip parameters already resolved
23 21 if (! empty($resolvedParameters)) {
@@ -24,14 +22,19 @@
24 22 $parameters = array_diff_key($parameters, $resolvedParameters);
25 23 }
26 24
27 25 foreach ($parameters as $index => $parameter) {
28 - /** @var \ReflectionParameter $parameter */
29 - if ($parameter->isOptional()) {
26 + \assert($parameter instanceof \ReflectionParameter);
27 + if ($parameter->isDefaultValueAvailable()) {
30 28 try {
31 29 $resolvedParameters[$index] = $parameter->getDefaultValue();
32 30 } catch (ReflectionException $e) {
33 31 // Can't get default values from PHP internal classes and functions
32 + }
33 + } else {
34 + $parameterType = $parameter->getType();
35 + if ($parameterType && $parameterType->allowsNull()) {
36 + $resolvedParameters[$index] = null;
34 37 }
35 38 }
36 39 }
37 40