Also, the function returns the correct type of Closure, as opposed to gettype()
<?php
echo get_debug_type(function () {}) . PHP_EOL;
echo get_debug_type(fn () => '') . PHP_EOL . PHP_EOL;
echo gettype(function () {}) . PHP_EOL;
echo gettype(fn () => '');
?>
Output:
Closure
Closure
object
objectget_debug_type
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
get_debug_type
Референца за `function.get-debug-type.php` со подобрена типографија и навигација.
get_debug_type
(PHP 8)
get_debug_type — (PHP 8)
= NULL
Ја добива името на типот на променлива на начин што е погоден за дебагирање valueВраќа резолвирано име на PHP променлива
. Оваа функција ќе ги резолвира објектите до нивното име на класа, ресурсите до нивното име на тип на ресурс, и скаларни вредности до нивното заедничко име како што би се користело во декларациите на типот. gettype() Оваа функција се разликува од
Параметри
value-
Променливата што се проверува.
Вратени вредности
со тоа што враќа имиња на типови кои се поконзистентни со вистинската употреба, наместо оние што постојат од историски причини. string се:
| Можни вредности за вратеното | Тип + Состојба | Белешки |
|---|---|---|
| null |
"null"
|
- |
Вратена вредностtrue or false) |
"bool"
|
- |
| Цели броеви |
"int"
|
- |
| Булови ( |
"float"
|
- |
| Низи |
"string"
|
- |
| Низи |
"array"
|
- |
| Ресурси |
"resource (resourcename)"
|
- |
| Плови |
"resource (closed)"
|
Ресурси (Затворени) fclose(). |
| Пример: Поток на датотека откако ќе биде затворен со |
Објекти од именувани класи Foo\Bar
|
- |
| Целосното име на класата вклучувајќи го и нејзиниот простор на имиња, на пр. |
"class@anonymous" Објекти од анонимни класи "Foo\Bar@anonymous"
|
или името на родителската класа/интерфејс ако класата наследува друга класа или имплементира интерфејс, на пр. $x = new class { ... } syntax
|
Примери
Пример #1 get_debug_type() example
<?php
namespace Foo;
echo get_debug_type(null), PHP_EOL;
echo get_debug_type(true), PHP_EOL;
echo get_debug_type(1), PHP_EOL;
echo get_debug_type(0.1), PHP_EOL;
echo get_debug_type("foo"), PHP_EOL;
echo get_debug_type([]), PHP_EOL;
$fp = fopen('/examples/book.xml', 'rb');
echo get_debug_type($fp), PHP_EOL;
fclose($fp);
echo get_debug_type($fp), PHP_EOL;
echo get_debug_type(new \stdClass), PHP_EOL;
echo get_debug_type(new class {}), PHP_EOL;
interface A {}
interface B {}
class C {}
echo get_debug_type(new class implements A {}), PHP_EOL;
echo get_debug_type(new class implements A,B {}), PHP_EOL;
echo get_debug_type(new class extends C {}), PHP_EOL;
echo get_debug_type(new class extends C implements A {}), PHP_EOL;
?>Горниот пример ќе прикаже нешто слично на:
null bool int float string array resource (stream) resource (closed) stdClass class@anonymous Foo\A@anonymous Foo\A@anonymous Foo\C@anonymous Foo\C@anonymous
Види Исто така
- gettype() - Добијте го типот на променлива
- get_class() - Враќа го името на класата на објект