3v4l.org

run code in 300+ PHP versions simultaneously
<?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