1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
Mikhail Alferov fff86f014e Update a124543 to En (#1072)
* Update tokens.xml to en

* Update include.xml to en

* Update server.xml to En + infostyle

* Update include.xml Fix Rev ID

* Update debug-backtrace.xml to en

* Update define.xml to en
2025-06-03 14:49:54 +03:00

227 lines
7.1 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: a124543dd3f6b1e5567b07420d23899e582514dc Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.define" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>define</refname>
<refpurpose>Определяет именованную константу</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>define</methodname>
<methodparam><type>string</type><parameter>constant_name</parameter></methodparam>
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>case_insensitive</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
Функция определяет именованную константу во время выполнения кода.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>constant_name</parameter></term>
<listitem>
<para>
Название константы.
</para>
<note>
<para>
Функция <function>define</function> умеет определять константы
с названиями, которые совпадают с зарезервированными словами
или даже нарушают правила языка по именованию идентификаторов,
при этом значение таких констант вернёт
только функция <function>constant</function>, но делать так не рекомендуют.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
Значение константы.
</para>
<warning>
<para>
Лучше не определять для констант значения с типом <type>resource</type>,
хотя это и возможно, поскольку поведение таких констант непредсказуемо.
</para>
</warning>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>case_insensitive</parameter></term>
<listitem>
<para>
Со значением &true; функция определит константу
без учёта регистра. По умолчанию названия констант чувствительны к регистру,
поэтому константы <literal>CONSTANT</literal> и <literal>Constant</literal>
представляют разные значения.
</para>
<warning>
<simpara>
Начиная с PHP 7.3.0 определение нечувствительных к регистру констант
устарело.
Начиная с PHP 8.0.0 параметр принимает только значение &false;,
передача &true; выдаст предупреждение.
</simpara>
</warning>
<note>
<para>
Нечувствительные к регистру константы хранятся в нижнем регистре.
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</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.1.0</entry>
<entry>
Параметр <parameter>value</parameter> теперь принимает объекты.
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
При передаче значения &true; в параметр <parameter>case_insensitive</parameter> теперь возникает ошибка уровня <constant>E_WARNING</constant>.
Передача значения &false; по-прежнему возможна.
</entry>
</row>
<row>
<entry>7.3.0</entry>
<entry>
Параметр <parameter>case_insensitive</parameter> устарел, а в версии 8.0.0 параметр удалят.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Определение констант</title>
<programlisting role="php">
<![CDATA[
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // Выводит "Hello world."
echo Constant; // Выводит "Constant" и выдаёт уведомление
define("GREETING", "Hello you.", true);
echo GREETING; // Выводит "Hello you."
echo Greeting; // Выводит "Hello you."
// Начиная с PHP 7
define('ANIMALS', array(
'собака',
'кошка',
'птица'
));
echo ANIMALS[1]; // Выводит "кошка"
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Определение констант, названия которых совпадают с зарезервированными словами</title>
<para>
Пример иллюстрирует <emphasis>доступность</emphasis> определения
для константы названия, которое совпадает с названием
<link linkend="language.constants.magic">магической константы</link>.
Лучше не давать константам такие названия,
поскольку такое поведение явно сбивает с толку.
</para>
<programlisting role="php">
<![CDATA[
<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
bool(false)
bool(true)
string(4) "test"
int(5)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>defined</function></member>
<member><function>constant</function></member>
<member><link linkend="language.constants">Константы</link></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
-->