1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
--TEST--
Test for bug #1996: Show wrapped callable for closures (html) (>= PHP 8.2)
--SKIPIF--
<?php
require __DIR__ . '/../utils.inc';
check_reqs('PHP >= 8.2');
?>
--INI--
xdebug.mode=develop
html_errors=1
date.timezone=UTC
--FILE--
<?php
$closure = Closure::fromCallable('substr');
var_dump($closure);
function user_defined($a, $b)
{
return substr($a, $b);
}
$closure = Closure::fromCallable('user_defined');
var_dump($closure);
$closure = Closure::fromCallable(['DateTimeImmutable', 'createFromFormat']);
var_dump($closure);
$dateTime = new DateTimeImmutable("2021-07-22");
$closure = Closure::fromCallable([$dateTime, 'format']);
var_dump($closure);
?>
--EXPECTF--
<pre class='xdebug-var-dump' dir='ltr'>
<small>%sbug01996-001-html-php82.php:3:</small>
<b>object</b>(<i>Closure</i>)[<i>1</i>]
<i>virtual</i> 'closure' <font color='#cc0000'>'substr'</font>
<i>public</i> 'function' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'substr'</font> <i>(length=6)</i>
<i>public</i> 'parameter' <font color='#888a85'>=></font>
<b>array</b> <i>(size=3)</i>
'$string' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<required>'</font> <i>(length=10)</i>
'$offset' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<required>'</font> <i>(length=10)</i>
'$length' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<optional>'</font> <i>(length=10)</i>
</pre><pre class='xdebug-var-dump' dir='ltr'>
<small>%sbug01996-001-html-php82.php:11:</small>
<b>object</b>(<i>Closure</i>)[<i>2</i>]
<i>virtual</i> 'closure' <font color='#cc0000'>'user_defined'</font>
<i>public</i> 'function' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'user_defined'</font> <i>(length=12)</i>
<i>public</i> 'parameter' <font color='#888a85'>=></font>
<b>array</b> <i>(size=2)</i>
'$a' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<required>'</font> <i>(length=10)</i>
'$b' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<required>'</font> <i>(length=10)</i>
</pre><pre class='xdebug-var-dump' dir='ltr'>
<small>%sbug01996-001-html-php82.php:15:</small>
<b>object</b>(<i>Closure</i>)[<i>1</i>]
<i>virtual</i> 'closure' <font color='#cc0000'>'DateTimeImmutable::createFromFormat'</font>
<i>public</i> 'function' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'DateTimeImmutable::createFromFormat'</font> <i>(length=35)</i>
<i>public</i> 'parameter' <font color='#888a85'>=></font>
<b>array</b> <i>(size=3)</i>
'$format' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<required>'</font> <i>(length=10)</i>
'$datetime' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<required>'</font> <i>(length=10)</i>
'$timezone' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<optional>'</font> <i>(length=10)</i>
</pre><pre class='xdebug-var-dump' dir='ltr'>
<small>%sbug01996-001-html-php82.php:20:</small>
<b>object</b>(<i>Closure</i>)[<i>3</i>]
<i>virtual</i> 'closure' <font color='#cc0000'>'$this->format'</font>
<i>public</i> 'function' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'DateTimeImmutable::format'</font> <i>(length=25)</i>
<i>public</i> 'this' <font color='#888a85'>=></font>
<b>object</b>(<i>DateTimeImmutable</i>)[<i>2</i>]
<i>public</i> 'date' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'2021-07-22 00:00:00.000000'</font> <i>(length=26)</i>
<i>public</i> 'timezone_type' <font color='#888a85'>=></font> <small>int</small> <font color='#4e9a06'>3</font>
<i>public</i> 'timezone' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'UTC'</font> <i>(length=3)</i>
<i>public</i> 'parameter' <font color='#888a85'>=></font>
<b>array</b> <i>(size=1)</i>
'$format' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'<required>'</font> <i>(length=10)</i>
</pre>
|