<?php
trait callback{
public function __invoke($p){}
}
class foo { use callback; }
$inline = new class { use callback; };
var_dump(
is_callable($inline, false, $target),
$target,
is_callable([$inline, '__invoke'], false, $target),
$target,
is_callable(new foo, false, $target),
$target
);
- Output for 7.4.3 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.7
- bool(true)
string(39) "class@anonymous /in/kTN4e:7$1::__invoke"
bool(true)
string(39) "class@anonymous /in/kTN4e:7$1::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.4.0
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f83aca7a092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f83aca7a092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.33
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fd30f392092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fd30f392092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.32
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7ff7b5c11092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7ff7b5c11092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.31
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f5e44684092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f5e44684092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.30
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f9ec061f092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f9ec061f092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.29
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fc31aec3092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fc31aec3092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.28
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f3683140092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f3683140092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.27
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f16d09cb092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f16d09cb092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.26
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f3b8c3b6092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f3b8c3b6092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.24
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f7a9d4d4092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f7a9d4d4092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.23
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fb4a406e092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fb4a406e092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.21
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f17e68ed092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f17e68ed092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.20
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fe7eafa4092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fe7eafa4092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.19
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f14b1d9e092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f14b1d9e092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.18
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f4b7ad53092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f4b7ad53092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.17
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f1470bc9092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f1470bc9092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.16
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f583107a092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f583107a092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.12
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f58e61af092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f58e61af092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.11
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f8ed3712092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f8ed3712092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.10
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fe4d9c71092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fe4d9c71092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.9
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fbd6bd6a092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fbd6bd6a092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.8
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f2ed887f092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f2ed887f092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.7
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f1ce33df092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f1ce33df092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.6
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f677f3d7092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f677f3d7092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.5
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f41f205c092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f41f205c092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.4
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f59d28bc092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f59d28bc092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.3
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f2751473092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f2751473092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.2
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f62340fa092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f62340fa092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.1
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f41e7913092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f41e7913092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.3.0
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f305db3c092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f305db3c092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.33
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fdfcb494092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fdfcb494092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.32
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fb70219f092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fb70219f092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.31
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f992399e092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f992399e092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.30
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7ff40cf94092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7ff40cf94092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.29
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f3a206e9092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f3a206e9092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.25
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f553fb01092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f553fb01092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.24
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f6a3ee78092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f6a3ee78092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.23
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f0e19266092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f0e19266092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.22
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f19cba5b092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f19cba5b092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.21
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f0df6b62092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f0df6b62092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.20
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f1198d8f092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f1198d8f092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.19
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f861cd65092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f861cd65092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.18
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f7250970092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f7250970092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.17
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f318ab6a092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f318ab6a092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.6
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f1ffc27c092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f1ffc27c092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.2.0
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fa467156092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fa467156092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.33
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fda2d9c1092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fda2d9c1092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.32
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f15b3829092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f15b3829092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.31
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f109dde1092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f109dde1092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.30
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fd74aa89092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fd74aa89092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.29
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f6754eca092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f6754eca092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.28
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f720b5fe092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f720b5fe092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.27
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fdf3de4b092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fdf3de4b092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.26
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f686264b092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f686264b092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.20
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f32e7d94092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f32e7d94092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.7
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7ff791bdf092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7ff791bdf092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.6
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f7d487e0092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f7d487e0092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.5
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f0e8d77d092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f0e8d77d092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.4
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f0d2cac2092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f0d2cac2092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.1.3
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7fcc76b5b092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7fcc76b5b092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.0.0 - 7.0.16, 7.1.0 - 7.1.2
- bool(true)
string(15) "class@anonymous"
bool(true)
string(15) "class@anonymous"
bool(true)
string(13) "foo::__invoke"
- Output for 7.0.20
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f30663e0092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f30663e0092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.0.18
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7f021f2f4092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7f021f2f4092::__invoke"
bool(true)
string(13) "foo::__invoke"
- Output for 7.0.17
- bool(true)
string(49) "class@anonymous /in/kTN4e0x7feb9b6ff092::__invoke"
bool(true)
string(49) "class@anonymous /in/kTN4e0x7feb9b6ff092::__invoke"
bool(true)
string(13) "foo::__invoke"
preferences:
151.61 ms | 402 KiB | 201 Q