1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
2025-09-15 05:03:48 +03:00

238 lines
6.8 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4f36c26a72c40b16e955c3c1c88041910932d0bf Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.get-class" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>get_class</refname>
<refpurpose>Возвращает имя класса, которому принадлежит объект</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>get_class</methodname>
<methodparam choice="opt"><type>object</type><parameter>object</parameter></methodparam>
</methodsynopsis>
<para>
Функция возвращает название класса объекта <parameter>object</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>object</parameter></term>
<listitem>
<para>
Тестируемый объект.
</para>
<note>
<simpara>
С PHP 7.2.0 явную передачу значения &null; в параметр <parameter>object</parameter>
запретили, функция выдаст ошибку уровня <constant>E_WARNING</constant>.
С PHP 8.0.0 функция выбрасывает ошибку <classname>TypeError</classname>
при передаче в параметр значения &null;.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает название класса, которому принадлежит экземпляр <parameter>object</parameter>.
</para>
<para>
Функция вернёт полное название пространства имён, если объект
<parameter>object</parameter> — экземпляр класса из пространства имён.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Функция <function>get_class</function> выбросит ошибку
<classname>TypeError</classname>, если в аргументе передали не объект.
До PHP 8.0.0 функция выдавала ошибку уровня <constant>E_WARNING</constant>.
</para>
<para>
При вызове без аргументов вне класса
функция <function>get_class</function> выбрасывает ошибку <classname>Error</classname>.
До PHP 8.0.0 функция выдавала ошибку уровня <constant>E_WARNING</constant>.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.3.0</entry>
<entry>
При вызове без аргументов функция <function>get_class</function> теперь
выдаёт ошибку уровня <constant>E_DEPRECATED</constant>;
раньше вызов функции внутри класса возвращал название класса.
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
Вызов функции вне класса без аргументов выбрасывает ошибку <classname>Error</classname>.
Раньше функция выдавала ошибку уровня <constant>E_WARNING</constant> и возвращала значение &false;.
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
До этой версии значение по умолчанию для параметра <parameter>object</parameter>
равнялось &null;, с которым функция работала аналогично вызову без аргументов.
Параметр <parameter>object</parameter> стал обязательным и больше не принимает значение &null;.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример получения названия класса функцией <function>get_class</function></title>
<programlisting role="php">
<![CDATA[
<?php
class foo
{
function name()
{
echo "Меня зовут " , get_class($this) , "\n";
}
}
// Создаём объект
$bar = new foo();
// Внешний вызов
echo "Его имя " , get_class($bar) , "\n";
// Внутренний вызов
$bar->name();
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Его имя foo
Меня зовут foo
]]>
</screen>
</example>
<example>
<title>Вызов функции <function>get_class</function> в родительском классе</title>
<programlisting role="php">
<![CDATA[
<?php
abstract class Bar
{
public function __construct()
{
var_dump(get_class($this));
var_dump(get_class());
}
}
class Foo extends Bar {}
new Foo();
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(3) "Foo"
string(3) "Bar"
]]>
</screen>
</example>
<example>
<title>
Вызов функции <function>get_class</function> с классами в пространствах имён
</title>
<programlisting role="php">
<![CDATA[
<?php
namespace Foo\Bar;
class Baz
{
public function __construct() {}
}
$baz = new \Foo\Bar\Baz;
var_dump(get_class($baz));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(11) "Foo\Bar\Baz"
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>get_called_class</function></member>
<member><function>get_parent_class</function></member>
<member><function>gettype</function></member>
<member><function>get_debug_type</function></member>
<member><function>is_subclass_of</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->