1
0
mirror of https://github.com/php/doc-uk.git synced 2026-03-23 22:52:14 +01:00

Synced more files with EN

This commit is contained in:
mproshchuk
2024-07-30 19:16:33 +03:00
parent 2a20da3f61
commit 41d0bc1a9f
26 changed files with 997 additions and 964 deletions

View File

@@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: ktretyak Status: wip -->
<!-- $Revision$ -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: mproshchuk Status: ready -->
<chapter xml:id="features.sessions" xmlns="http://docbook.org/ns/docbook">
<title>Sessions</title>
<title>Сесії</title>
<para>
Session support in PHP consists of a way to preserve certain data across
subsequent accesses. This enables you to build more customized applications
and increase the appeal of your web site. All information is in the
<link linkend="book.session">Session reference</link> section.
Підтримка сесій у PHP полягає у способі збереження певних даних для
наступного сеансу. Це дає змогу створювати більш гнучкі програми та
підвищувати привабливість вебсайту. Уся інформація є у розділі
<link linkend="book.session">Керівництво з сесій</link>.
</para>
</chapter>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8c1eafbac90415e04846aae47cf544b4df6a3388 Maintainer: mproshchuk Status: ready -->
<!-- EN-Revision: 3d4f72a46a0d144ec412438aca3d3b337df43d5c Maintainer: mproshchuk Status: ready -->
<chapter xml:id="install.windows" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Встановлення в системах Windows</title>
<para>
@@ -46,9 +46,9 @@
</para>
<para>
Microsoft Visual C++ Redistributable для Visual Studio 2019 підходить для
Microsoft Visual C++ Redistributable для Visual Studio 2022 підходить для
всіх версій PHP. Докладніше за посиланням
<link xlink:href="https://visualstudio.microsoft.com/downloads/">https://visualstudio.microsoft.com/downloads/</link>.
<link xlink:href="&url.microsoft.visualc.redistr;">https://visualstudio.microsoft.com/downloads/</link>.
</para>
<para>
@@ -87,6 +87,7 @@
&install.windows.apache2;
&install.windows.troubleshooting;
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -12,7 +12,7 @@
<!ENTITY Features "Можливості">
<!ENTITY Security "Безпека">
<!ENTITY FunctionReference "Довідник функцій">
<!ENTITY VariableandTypeRelatedExtensions "Розширення, що відносяться до змінних та типів">
<!ENTITY VariableandTypeRelatedExtensions "Розширення для обробки змінних та типів">
<!ENTITY TextProcessing "Обробка тексту">
<!ENTITY AffectingPHPsBehaviour "Вплив на поведінку PHP">
<!ENTITY SessionExtensions "Розширення для роботи зі сесіями">
@@ -20,27 +20,27 @@
<!ENTITY DatabaseExtensions "Розширення для роботи з базами даних">
<!ENTITY AbstractionLayers "Абстрактні прошарки">
<!ENTITY VendorSpecificDatabaseExtensions "Постачальники окремих розширень баз даних">
<!ENTITY XMLManipulation "Маніпуляції з XML">
<!ENTITY XMLManipulation "Обробка XML">
<!ENTITY WebServices "Вебсервіси">
<!ENTITY CreditCardProcessing "Обробка кредитних карток">
<!ENTITY MathematicalExtensions "Математичні розширення">
<!ENTITY CryptographyExtensions "Криптографічні розширення">
<!ENTITY HumanLanguageandCharacterEncodingSupport "Підтримка людської мови та кодування символів">
<!ENTITY FileSystemRelatedExtensions "Розширення, що відносяться до файлової системи">
<!ENTITY FileSystemRelatedExtensions "Розширення для роботи з файловою системою">
<!ENTITY ProcessControlExtensions "Розширення, що контролює обробку">
<!ENTITY MailRelatedExtensions "Розширення, що стосується пошти">
<!ENTITY MailRelatedExtensions "Розширення для роботи з поштою">
<!ENTITY AuthenticationServices "Сервіс автентифікації">
<!ENTITY OtherServices "Інші сервіси">
<!ENTITY CompressionExtensions "Розширення для архівації та стиснення">
<!ENTITY CalendarandEventRelatedExtensions "Розширення, що стосуються дати й часу">
<!ENTITY NonTextMIMEOutput "Вивід нетекстових MIME">
<!ENTITY ImageProcessingandGeneration "Обробка та генерація зображень">
<!ENTITY AudioFormatsManipulation "Маніпуляції з аудіо форматами">
<!ENTITY CommandLineSpecificExtensions "Розширення призначені для командного рядка">
<!ENTITY AudioFormatsManipulation "Обробка аудіо">
<!ENTITY CommandLineSpecificExtensions "Розширення для командного рядка">
<!ENTITY WindowsOnlyExtensions "Розширення суто для Windows">
<!ENTITY ServerSpecificExtensions "Спеціальні розширення сервера">
<!ENTITY SearchEngineExtensions "Розширення Рушіїв Пошуку">
<!ENTITY MiscExtensions "Різні Розширення">
<!ENTITY SearchEngineExtensions "Розширення рушіїв пошуку">
<!ENTITY MiscExtensions "Різні розширення">
<!ENTITY UIExtensions "Розширення для роботи з GUI">
<!ENTITY Appendices "Доповнення">
<!ENTITY PEAR "PEAR: Репозиторій PHP розширень та застосунків">
@@ -55,10 +55,10 @@
<!ENTITY ExampleListing "Список прикладів">
<!ENTITY ExampleListingDescription "Список всіх прикладів в керівництві">
<!ENTITY ChangelogListingTitle "Журнал змін">
<!ENTITY ChangelogListingDescription "Були здійснені наступні зміни з класами/функціями/методами цього розширення.">
<!ENTITY ChangelogListingBundledDescription "Були здійснені наступні зміни з функціями, що входять в комплект розширення.">
<!ENTITY CHMEdition "HTML варіант довідки">
<!ENTITY ReservedConstants "Предвизначені константи">
<!ENTITY ChangelogListingDescription "Здійснено наступні зміни з класами/функціями/методами цього розширення.">
<!ENTITY ChangelogListingBundledDescription "Здійснено наступні зміни з функціями, що входять в комплект розширення.">
<!ENTITY CHMEdition "HTML-варіант довідки">
<!ENTITY ReservedConstants "Попередньо визначені константи">
<!ENTITY MissingStuff "Відсутні речі">
<!ENTITY AndSeveralOthers "Та інші">
<!ENTITY Version "Версія">
@@ -83,20 +83,20 @@
<!-- These are used in reference/$extname/reference.xml and other
supplemental files to mark section titles -->
<!ENTITY reftitle.changelog '<title xmlns="http://docbook.org/ns/docbook">Журнал змін</title>'>
<!ENTITY reftitle.classes '<title xmlns="http://docbook.org/ns/docbook">Предвизначені класи</title>'>
<!ENTITY reftitle.classes '<title xmlns="http://docbook.org/ns/docbook">Попередньо визначені класи</title>'>
<!ENTITY reftitle.classsynopsis '<title xmlns="http://docbook.org/ns/docbook">Короткий огляд класу</title>'>
<!ENTITY reftitle.constants '<title xmlns="http://docbook.org/ns/docbook">Предвизначені константи</title>'>
<!ENTITY reftitle.constants '<title xmlns="http://docbook.org/ns/docbook">Попередньо визначені константи</title>'>
<!ENTITY reftitle.constructor '<title xmlns="http://docbook.org/ns/docbook">Конструктор</title>'>
<!ENTITY reftitle.description '<title xmlns="http://docbook.org/ns/docbook">Опис</title>'>
<!ENTITY reftitle.encoding '<title xmlns="http://docbook.org/ns/docbook">Кодування</title>'>
<!ENTITY reftitle.examples '<title xmlns="http://docbook.org/ns/docbook">Приклади</title>'>
<!ENTITY reftitle.exceptions '<title xmlns="http://docbook.org/ns/docbook">Винятки</title>'>
<!ENTITY reftitle.errors '<title xmlns="http://docbook.org/ns/docbook">Помилки/винятки</title>'>
<!ENTITY reftitle.errors '<title xmlns="http://docbook.org/ns/docbook">Помилки/виключення</title>'>
<!ENTITY reftitle.faq '<title xmlns="http://docbook.org/ns/docbook">&FAQ;</title>'>
<!ENTITY reftitle.install '<title xmlns="http://docbook.org/ns/docbook">Встановлення</title>'>
<!ENTITY reftitle.intro '<title xmlns="http://docbook.org/ns/docbook">Вступ</title>'>
<!ENTITY reftitle.indices '<title xmlns="http://docbook.org/ns/docbook">Індекси</title>'>
<!ENTITY reftitle.interfacesynopsis '<title xmlns="http://docbook.org/ns/docbook">Короткий огляд Інтерфейса</title>'>
<!ENTITY reftitle.interfacesynopsis '<title xmlns="http://docbook.org/ns/docbook">Короткий огляд iнтерфейcу</title>'>
<!ENTITY reftitle.methods '<title xmlns="http://docbook.org/ns/docbook">Методи</title>'>
<!ENTITY reftitle.mysqlnd '<title xmlns="http://docbook.org/ns/docbook">Лише рідний драйвер MySQL</title>'>
<!ENTITY reftitle.notes '<title xmlns="http://docbook.org/ns/docbook">Примітки</title>'>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9c02dc54d852d871cbcfcda05df9855333e8bc78 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 6b09bb638aa64d1fad5f4a630a8da9a2692ce733 Maintainer: mproshchuk Status: wip -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook">
<title>Базовий синтаксис</title>
<sect1 xml:id="language.basic-syntax.phptags">
@@ -13,21 +12,52 @@
документи, оскільки код, за межами пари з відкриваючим та закриваючим
тегами, ігнорується обробником PHP.
</para>
<para>
PHP також дозволяє короткий відкриваючий тег <literal>&lt;?</literal>
цьому випадку закриваючий тег не змінюється,
але використовуйте його обережно,
оскільки він доступний, тільки якщо його підключено через директиву
<link linkend="ini.short-open-tag">short_open_tag</link> у конфігураційному
файлі &php.ini;, або якщо PHP було сконфігуровано з параметром
<option>--enable-short-tags</option>).
PHP має короткий echo-тег <literal>&lt;?=</literal>, який є скороченим
варіантом <code>&lt;?php echo</code>.
</para>
<para>
<example>
<title>PHP Opening and Closing Tags</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'if you want to serve PHP code in XHTML or XML documents,
use these tags'; ?>
2. You can use the short echo tag to <?= 'print this string' ?>.
It's equivalent to <?php echo 'print this string' ?>.
3. <? echo 'this code is within short tags, but will only work '.
'if short_open_tag is enabled'; ?>
]]>
</programlisting>
</example>
</para>
<para>
Short tags (example three) are available by default but can be disabled
either via the <link linkend="ini.short-open-tag">short_open_tag</link>
&php.ini; configuration file directive, or are disabled by default if
PHP is built with the <option>--disable-short-tags</option> configuration.
</para>
<para>
Якщо файл має лише PHP-код, краще не вказувати закриваючий тег PHP в кінці
файла. Це запобігає випадковості додавання пробіла або нового рядка після
закриваючого тега PHP, що може спричиняти небажаний ефект, оскільки PHP
починає буферизацію виводу, коли програміст не має наміру будь-що
виводити в своєму скрипті.
<note>
<para>
As short tags can be disabled it is recommended to only use the normal
tags (<code>&lt;?php ?&gt;</code> and <code>&lt;?= ?&gt;</code>) to
maximise compatibility.
</para>
</note>
</para>
<para>
If a file contains only PHP code, it is preferable to omit the PHP closing tag
at the end of the file. This prevents accidental whitespace or new lines
being added after the PHP closing tag, which may cause unwanted effects
because PHP will start output buffering when there is no intention from
the programmer to send any output at that point in the script.
<informalexample>
<programlisting role="php">
<![CDATA[
@@ -40,6 +70,7 @@ echo "Останній вивід";
// тут скрипт завершується без додавання закриваючого тега PHP
]]>
</programlisting>
</informalexample>
</para>
@@ -51,7 +82,7 @@ echo "Останній вивід";
обробником PHP. Таким чином можна обробляти PHP-файли зі змішаним вмістом, тобто
вбудовувати PHP-код в HTML-документи, наприклад, при створенні
шаблонів.
<example>
<informexample>
<programlisting role="php">
<![CDATA[
<p>Ця частина коду буде проігнорована PHP, але показуватиметься через браузер.</p>
@@ -59,7 +90,7 @@ echo "Останній вивід";
<p>І цей код - також буде проігноровано PHP, але показуватиметься через браузер.</p>
]]>
</programlisting>
</example>
</informexample>
Такий код обробляється як і очікується, оскільки коли інтерпретатор PHP
зустрічає закриваючий тег ?&gt; він просто починає виводити все, що
знаходить, допоки не зустріне інший відкриваючий тег. Але є два виключення,
@@ -95,89 +126,15 @@ echo "Останній вивід";
<function>echo</function> чи <function>print</function>.
</para>
<para>
Існує чотири різних пари з відкриваючими та закриваючими тегами, які можна
використовувати в PHP. Дві із них, &lt;?php ?&gt; та
&lt;script language="php"&gt; &lt;/script&gt;, завжди доступні.
Дві інші пари - це короткі теги та теги в стилі
<productname>ASP</productname>, які можна включати та відключати у
конфігураційному файлі &php.ini;. Отже, хоча деякі люди вважають зручними
короткі теги та теги в стилі <productname>ASP</productname>, вони є менш
портативними, та взагалі то не рекомендуються.
<note>
<para>
Якщо ви вставляєте блоки PHP вередині XML чи XHTML, вам потрібно
використовувати теги &lt;?php ?&gt; щоб код залишався сумісним згідно зі
стандартом.
</para>
</note>
</para>
<para>
<example>
<title>Різні варіанти відкриваючих та закриваючих тегів PHP</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'якщо ви хочете обробляти PHP-код всередині XHTML або XML
документів, використовуйте такі теги'; ?>
2. <script language="php">
echo 'деякі редактори (наприклад FrontPage) не обробляють інструкції
всередині таких тегів';
</script>
3. <? echo 'цей код знаходиться всередині коротких тегів PHP'; ?>
А код в таких тегах <?= 'тут якийсь текст' ?>
є скороченням для коду <? echo 'тут якийсь текст' ?>
4. <% echo 'Також, якщо хочете, можете використовувати теги в ASP-стилі'; %>
А код в таких тегах <%= $змінна; %>
є скороченням для коду <% echo $змінна; %>
]]>
</programlisting>
</example>
</para>
<para>
Хоча теги, показані в пунктах 1 та 2, завжди є доступними, теги, показані
в пункті 1, є найбільш вживаними, та є рекомендованим, на відміну від тегів
в пункті 2.
</para>
<para>
Короткі теги (пункт 3) є доступними, тільки якщо вони підключені через
директиву <link linkend="ini.short-open-tag">short_open_tag</link>
в конфігураційному файлі &php.ini;, або якщо PHP було сконфігуровано з
параметром <option>--enable-short-tags</option>.
</para>
<para>
Теги в стилі <productname>ASP</productname> (пункт 4) доступні, тільки коли
вони підключені через директиву <link linkend="ini.asp-tags">asp_tags</link>
в конфігураційному файлі &php.ini;.
</para>
<para>
<note>
<para>
Використання коротких тегів краще уникати при розробці застосунків
чи бібліотек, що призначаються для поширення, або при розміщенні скриптів
на PHP-серверах, які знаходяться не під вашим контролем, оскільки короткі
теги можуть не підтримуватись. Для портативності, переконайтесь, що ви
не використовуєте короткі теги.
</para>
</note>
<note>
<para>
У версіях PHP 5.2 та рініших, парсер не дозволяв використовувати
тільки відкриваючі теги <literal>&lt;?php</literal> без використання
закриваючих тегів. Це стало можливим починаючи з PHP 5.3, при наявності
одного чи кількох пробілів після відкриваючого тега.
</para>
</note>
<note>
<para>
Починаючи з PHP 5.4, короткий тег <literal>&lt;?=</literal> завжди
розпізнається та є дійсним, незалежно від того, чи включена директива
<link linkend="ini.short-open-tag">short_open_tag</link>.
Вставляючи блоки PHP всередину XML чи XHTML, потрібно використовувати
теги &lt;?php ?&gt;, щоб код відповідав стандартам.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.instruction-separation">
<title>Поділ інструкцій</title>
<para>
@@ -187,6 +144,29 @@ echo "Останній вивід";
потрібно завершувати останній рядок PHP-блоку символом крапки з комою.
Закриваючий тег також зумовить видалення символа нового рядка, що йде
безпосередньо зразу після нього, якщо він є.
</para>
<para>
<example>
<title>Example showing the closing tag encompassing the trailing newline</title>
<programlisting role="php">
<![CDATA[
<?php echo "Some text"; ?>
No newline
<?= "But newline now" ?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Some textNo newline
But newline now
]]>
</screen>
</example>
</para>
<para>
Examples of entering and exiting the PHP parser:
<informalexample>
<programlisting role="php">
<![CDATA[
@@ -242,10 +222,6 @@ echo "Останній вивід";
чи <literal># ... ?&gt;</literal> БУДЕ надруковано, оскільки закриваючий
тег ?&gt; перериває PHP-режим та включає HTML-режим, і
<literal>//</literal> чи <literal>#</literal> не впливають на це.
Якщо конфігураційна директива <link linkend="ini.asp-tags">asp_tags</link>
включена, такий же ефект буде з тегами <literal>// %&gt;</literal> та
<literal># %&gt;</literal>. Лише тег <literal>&lt;/script&gt;</literal>
не перериває PHP-режиму в однорядкових коментарях.
</simpara>
<para>
<informalexample>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 84b8fca68fc762fefe85acde180a38b2e77a28b9 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<sect1 xml:id="function.require" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>require</title>

View File

@@ -1,25 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a9f96e8c83e989c5edca55ccb36ed9b7579d8a44 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: f5e5b54129045a7d02c5285a88cea0abff8ffb6f Maintainer: mproshchuk Status: ready -->
<sect1 xml:id="language.oop5.visibility" xmlns="http://docbook.org/ns/docbook">
<title>Область видимості</title>
<para>
Області видимості властивостей або методів можуть визначатись через
ключові слова <emphasis>public</emphasis>,
<emphasis>protected</emphasis> чи
<emphasis>private</emphasis>. Доступ до членів класа оголошених
як public (загальнодоступні), дозволено всюди. Члени класа оголошені
як protected (захищені) доступні лише всередині самого класа, а також
через наслідувані та батьківські класи. Члени класа оголошені як private (закриті)
можуть бути доступні лише через клас, де вони визначені.
Області видимості властивостей, методів або (починаючи з PHP 7.1.0) констант
можуть визначатись через ключові слова <literal>public</literal>,
<literal>protected</literal> чи <literal>private</literal>. Доступ до членів
класу, оголошених як public (загальнодоступні), дозволено всюди. Члени класу,
оголошені як protected (захищені), доступні лише всередині самого класу, а
також через класи-нащадки та батьківські класи. Члени класу, оголошені як
private (закриті) можуть бути доступні лише через клас, де вони визначені.
</para>
<sect2 xml:id="language.oop5.visibility-members">
<title>Область Видимості Властивості</title>
<para>
Властивості класа повинні оголошуватись як public, private, чи
protected. Якщо оголошення відбувається через ключове слово <emphasis>var</emphasis>,
то властивість буде визначена як public.
Властивості класу можуть оголошуватись як public, private чи protected.
Властивість, оголошена без ключового слова видимості, вважається
загальнодоступною.
</para>
<para>
<example>
@@ -56,7 +54,8 @@ $obj->printHello(); // Виводить Загальнодоступна, Зах
*/
class MyClass2 extends MyClass
{
// Ми можемо перевизначити public та protected методи, але не private
// Ми можемо перевизначити public- та protected-властивості, але не private
public $public = 'Public2';
protected $protected = 'Захищена2';
function printHello()
@@ -71,34 +70,24 @@ $obj2 = new MyClass2();
echo $obj2->public; // Працює
echo $obj2->protected; // Фатальна помилка
echo $obj2->private; // Невизначено
$obj2->printHello(); // Виводить Загальнодоступна, Захищена2, Закрита
$obj2->printHello(); // Виводить Загальнодоступна2, Захищена2, Закрита
?>
]]>
</programlisting>
</example>
</para>
<note>
<simpara>
Метод, що оголошено через ключове слово
<emphasis>var</emphasis>, яке було впроваджено в PHP 4,
покищо підтримується з метою сумісності (як синонім ключового слова public).
У версіях PHP 5 перед 5.1.3, таке використання буде виводити попередження
<constant>E_STRICT</constant>.
</simpara>
</note>
</sect2>
<sect2 xml:id="language.oop5.visiblity-methods">
<title>Область Видимості Метода</title>
<title>Область видимості метода</title>
<para>
Методи класа можуть бути визначені як public, private, чи
protected. Методи, що оголошені без будь-якого ключового слова
для видимості класа, визначаються як public.
Методи класу можуть бути визначені як public, private чи protected. Метод,
оголошений без ключового слова видимості, вважається загальнодоступним.
</para>
<para>
<example>
<title>Оголошення Метода</title>
<title>Оголошення метода</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -180,7 +169,7 @@ class Foo extends Bar
}
}
$myFoo = new foo();
$myFoo = new Foo();
$myFoo->test(); // Bar::testPrivate
// Foo::testPublic
?>
@@ -190,14 +179,79 @@ $myFoo->test(); // Bar::testPrivate
</para>
</sect2>
<sect2 xml:id="language.oop5.visiblity-constants">
<title>Видимість констант</title>
<para>
Починаючи з PHP 7.1.0, константи класу можуть оголошуватись як public,
private чи protected. Константа, оголошена без ключового слова видимості,
вважається загальнодоступною.
</para>
<para>
<example>
<title>Оголошення констатн, починаючи з PHP 7.1.0</title>
<programlisting role="php">
<![CDATA[
<?php
/**
* Define MyClass
*/
class MyClass
{
// Оголошення загальнодоступної константи
public const MY_PUBLIC = 'public';
// Оголошення захищеної константи
protected const MY_PROTECTED = 'protected';
// Оголошення закритої константи
private const MY_PRIVATE = 'private';
public function foo()
{
echo self::MY_PUBLIC;
echo self::MY_PROTECTED;
echo self::MY_PRIVATE;
}
}
$myclass = new MyClass();
MyClass::MY_PUBLIC; // Працює
MyClass::MY_PROTECTED; // Фатальна помилка
MyClass::MY_PRIVATE; // Фатальна помилка
$myclass->foo(); // Працюють Public, Protected та Private
/**
* Визначення MyClass2
*/
class MyClass2 extends MyClass
{
// Це публічний метод
function foo2()
{
echo self::MY_PUBLIC;
echo self::MY_PROTECTED;
echo self::MY_PRIVATE; // Фатальна помилка
}
}
$myclass2 = new MyClass2;
echo MyClass2::MY_PUBLIC; // Працює
$myclass2->foo2(); // Працюють константи Public та Protected, але не Private
?>
]]>
</programlisting>
</example>
</para>
</sect2>
<sect2 xml:id="language.oop5.visibility-other-objects">
<title>Видимість з інших об'єктів</title>
<para>
Однотипні об'єкти мають доступ до методів
та властивостей один одного, що оголошені як private або protected,
навіть якщо ці об'єкти не є одним і тим же екземпляром. Це пояснюється тим,
що впровадження механізма видимості відбувається відносно класів цих
об'єктів, а не відносно самих об'єктів.
Однотипні об'єкти мають доступ до методів та властивостей один одного, що
оголошені як private або protected, навіть якщо ці об'єкти не є одним і тим
же примірником. Це пояснюється тим, що впровадження механізму видимості
відбувається відносно класів цих об'єктів, а не відносно самих об'єктів.
</para>
<example>
<title>Доступ до закритих членів класу, що мають однаковий тип об'єкта</title>

View File

@@ -1,82 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 24e5510d907b3be789bd773c5c8c01b29e22af47 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: a6d209f4ff71ccba3f1255902827f5df3e092ff9 Maintainer: mproshchuk Status: ready -->
<refentry role="variable" xml:id="reserved.variables.server" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>$_SERVER</refname>
<refname>$HTTP_SERVER_VARS [видалена]</refname>
<refpurpose>Інформація про серверне та виконавче оточення</refpurpose>
<refpurpose>Інформація про серверне та виконавче середовище</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
Змінна <varname>$_SERVER</varname> є масивом (<type>array</type>), що
містить таку інформацію як заголовки, шляхи та розташування скриптів.
Записи в цьому масиві створює веб-сервер. Немає гарантії того, що кожен
веб-сервер буде надавати всі ці записи; веб-сервери можуть опускати деякі з
цих змінних, або надавати інші, незазначені в списку, що наведено нижче.
Тим не менше, але більша частина з цих змінних взяті на облік в
<link xlink:href="&url.rfc;3875">специфікації CGI/1.1</link>, отже вам варто
бути готовим до них.
Змінна <varname>$_SERVER</varname> — це масив, що містить таку інформацію як
заголовки, шляхи та розташування скриптів. Записи в цьому масиві створює
вебсервер. Немає гарантії, що кожен вебсервер буде надавати всі ці записи;
Деякі дані може бути опущено або надано інші, незазначені в списку, який
наведено нижче. Тим не менш, більша частина цих даних описані в
<link xlink:href="&url.rfc;3875">специфікації CGI/1.1</link> і, ймовірно,
будуть визначені.
</para>
<simpara>
Змінна <varname>$HTTP_SERVER_VARS</varname> містить таку ж ініціалізуючу
інформацію, але не є
<link linkend="language.variables.superglobals">суперглобальною</link>.
(Зауважте, що <varname>$HTTP_SERVER_VARS</varname> та <varname>$_SERVER</varname>
є різними змінними, а тому PHP обробляє їх як такі). Також майте на увазі,
що масиви з довгою назвою були видалені починаючи з PHP 5.4.0, отже
змінної <varname>$HTTP_SERVER_VARS</varname> більше не існує.
</simpara>
<note>
<simpara>
Під час виконання PHP в <link linkend="features.commandline">командному
рядку</link> більшість з цих записів не доступні або мають інше значення.
</simpara>
</note>
<para>
Разом з елементами, описаними нижче, PHP створює додаткові елементи зі
значеннями заголовків запиту. Ці елементи матимуть ключі з назвою, що
складається з <literal>HTTP_</literal> та назви заголовка великими буквами та
підкресленнями замість дефісів. Наприклад, заголовок
<literal>Accept-Language</literal> буде доступний як
<code>$_SERVER['HTTP_ACCEPT_LANGUAGE']</code>.
</para>
</refsect1>
<refsect1 role="indices">
&reftitle.indices;
<simpara>
Ви можете знайти (а можете і не знайти) будь-який з наступних елементів в
<varname>$_SERVER</varname>. Невелика кількість з них може бути
доступною (або дійсно матиме значення), якщо ви запускаєте PHP з
<link linkend="features.commandline">командного рядка</link>.
</simpara>
<para>
<variablelist>
<varlistentry>
<term>'<varname>PHP_SELF</varname>'</term>
<term>"<varname>PHP_SELF</varname>"</term>
<listitem>
<simpara>
Шлях до файла, де в даний момент запущено скрипт, відносно кореневого
каталогу документів веб-сервера (document root). Наприклад,
<varname>$_SERVER['PHP_SELF']</varname> в скрипті за адресою
<filename>http://example.com/foo/bar.php</filename>
буде <filename>/foo/bar.php</filename>.
Константа <link linkend="language.constants.predefined">__FILE__</link>
містить повний шлях та назву поточного (тобто підключеного) файла.
Шлях до файлу, де запущено скрипт, відносно кореневої теки вебсервера
(document root). Наприклад, <varname>$_SERVER['PHP_SELF']</varname> в
скрипті за адресою <filename>http://example.com/foo/bar.php</filename>
буде <filename>/foo/bar.php</filename>. Константа
<link linkend="language.constants.predefined">__FILE__</link> містить
повний шлях та назву поточного (тобто підключеного) файлу.
</simpara>
<simpara>
Якщо PHP запущено з командного рядка, ця змінна містить назву скрипта починаючи з
PHP 4.3.0, що раніше було недоступно.
Якщо PHP запущено з командного рядка, ця змінна міститиме назву скрипта.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<link linkend="reserved.variables.argv">argv</link>'</term>
<term>"<link linkend="reserved.variables.argv">argv</link>"</term>
<listitem>
<simpara>
Масив аргументів, переданих до скрипта. Коли скрипт запущено з
командного рядка, то є можливість передавати до нього параметри в
C-стилі. При виклику через метод GET, цей масив містить рядок запита.
Масив аргументів, переданих до скрипта. Коли скрипт запущено з командного
рядка, то є можливість передавати до нього параметри в C-стилі. Під час
виклику методом GET цей масив містить рядок запиту.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<link linkend="reserved.variables.argc">argc</link>'</term>
<term>"<link linkend="reserved.variables.argc">argc</link>"</term>
<listitem>
<simpara>
Містить число параметрів, переданих до скрипта з командного рядка
@@ -86,94 +79,100 @@
</varlistentry>
<varlistentry>
<term>'<varname>GATEWAY_INTERFACE</varname>'</term>
<term>"<varname>GATEWAY_INTERFACE</varname>"</term>
<listitem>
<simpara>
Назва та номер ревізії специфікації CGI сервера, що використовується;
наприклад, '<literal>CGI/1.1</literal>'.
Назва та номер ревізії специфікації CGI сервера, що використовується.
Наприклад, <literal>"CGI/1.1"</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_ADDR</varname>'</term>
<term>"<varname>SERVER_ADDR</varname>"</term>
<listitem>
<simpara>
IP-адреса сервера, під яким поточний скрипт виконується.
IP-адреса сервера, на якому скрипт виконується.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_NAME</varname>'</term>
<term>"<varname>SERVER_NAME</varname>"</term>
<listitem>
<simpara>
Назва хоста сервера, під яким поточний скрипт виконується. Якщо скрипт
запущено на віртуальному хості, ця змінна міститиме його назву.
Назва хоста сервера, на якому скрипт виконується. Якщо скрипт запущено на
віртуальному хості, ця змінна міститиме його назву.
</simpara>
<note>
<simpara>
На Apache 2 потрібно встановити <literal>UseCanonicalName = On</literal>
і <literal>ServerName</literal>. Інакше, це значення відображатиме назву
хоста, надану клієнтом, яку можна підробити. Покладатися на це значення
в контексті безпеки — небезпечно.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>"<varname>SERVER_SOFTWARE</varname>"</term>
<listitem>
<simpara>
Ідентифікаційний рядок сервера, передається в заголовках у відповідь на
запит.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_SOFTWARE</varname>'</term>
<term>"<varname>SERVER_PROTOCOL</varname>"</term>
<listitem>
<simpara>
Ідентифікаційний рядок сервера, передається в заголовках при
відповіді на запит.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_PROTOCOL</varname>'</term>
<listitem>
<simpara>
Назва та номер ревізії протоколу, через який було запитано сторінку;
наприклад, '<literal>HTTP/1.0</literal>';
Назва та номер ревізії протоколу, через який було запитано сторінку.
Наприклад, <literal>"HTTP/1.0"</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_METHOD</varname>'</term>
<term>"<varname>REQUEST_METHOD</varname>"</term>
<listitem>
<simpara>
Назва метода, що використовувався при запиті сторінки;
тобто '<literal>GET</literal>',
'<literal>HEAD</literal>', '<literal>POST</literal>',
'<literal>PUT</literal>'.
Назва метода, що використовувався під час запиту сторінки, тобто
<literal>"GET"</literal>, <literal>"HEAD"</literal>,
<literal>"POST"</literal>, <literal>"PUT"</literal>.
</simpara>
<note>
<para>
Скрипт PHP завершує роботу після відправки заголовків (тобто,
після здійснення будь-якого виводу без його буферизації) якщо метод
запита був <literal>HEAD</literal>.
Скрипт PHP завершує роботу після надсилання заголовків (тобто, після
здійснення будь-якого виводу без його буферизації) якщо метод запиту
був <literal>HEAD</literal>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_TIME</varname>'</term>
<term>"<varname>REQUEST_TIME</varname>"</term>
<listitem>
<simpara>
Мітка часу, коли почався запит. Доступна починаючи з PHP 5.1.0.
Мітка часу, коли почався запит.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_TIME_FLOAT</varname>'</term>
<term>"<varname>REQUEST_TIME_FLOAT</varname>"</term>
<listitem>
<simpara>
Мітка часу, коли почався запит, з точністю до мікросекунд.
Доступна починаючи з PHP 5.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>QUERY_STRING</varname>'</term>
<term>"<varname>QUERY_STRING</varname>"</term>
<listitem>
<simpara>
Рядок запиту, якщо він є, через який доступились до сторінки.
@@ -182,122 +181,26 @@
</varlistentry>
<varlistentry>
<term>'<varname>DOCUMENT_ROOT</varname>'</term>
<term>"<varname>DOCUMENT_ROOT</varname>"</term>
<listitem>
<simpara>
Коренева директорія документів (document root), з під якої поточний
скрипт виконується; вона визначається в конфігураційному файлі веб-сервера.
Коренева директорія документів (document root), в якій скрипт
виконується; вона визначається в конфігураційному файлі вебсервера.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_ACCEPT</varname>'</term>
<term>"<varname>HTTPS</varname>"</term>
<listitem>
<simpara>
Вміст заголовка <literal>Accept:</literal> з поточного запита,
якщо він є.
Має непорожнє значення, якщо скрипт було запитано через протокол HTTPS.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_ACCEPT_CHARSET</varname>'</term>
<listitem>
<simpara>
Вміст заголовка <literal>Accept-Charset:</literal>
з поточного запита, якщо він є. Наприклад:
'<literal>iso-8859-1,*,utf-8</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_ACCEPT_ENCODING</varname>'</term>
<listitem>
<simpara>
Вміст заголовка <literal>Accept-Encoding:</literal> з поточного запита,
якщо він є. Наприклад: '<literal>gzip</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_ACCEPT_LANGUAGE</varname>'</term>
<listitem>
<simpara>
Вміст заголовка <literal>Accept-Language:</literal> з поточного запита,
якщо він є. Наприклад: '<literal>uk</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_CONNECTION</varname>'</term>
<listitem>
<simpara>
Вміст заголовка <literal>Connection:</literal> з поточного запита,
якщо він є. Наприклад: '<literal>Keep-Alive</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_HOST</varname>'</term>
<listitem>
<simpara>
Вміст заголовка <literal>Host:</literal> з поточного запита,
якщо він є.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_REFERER</varname>'</term>
<listitem>
<simpara>
Адреса сторінки (якщо така є), з якої користувач перейшов
на поточну сторінку. Це значення встановлюється браузером. Не всі
браузери встановлюють це значення, а деякі надають можливість
модифікувати <varname>HTTP_REFERER</varname>в якості додаткової
можливості. Якщо коротко - цьому значенню не можна довіряти.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_USER_AGENT</varname>'</term>
<listitem>
<simpara>
Вміст заголовка <literal>User-Agent:</literal> з поточного запита,
якщо він є. Цей рядок містить позначення браузера користувача, з якого
було запрошено поточну сторінку. Типовий приклад такого рядка:
<computeroutput>Mozilla/4.5 [en] (X11; U;
Linux 2.2.9 i586)</computeroutput>. Серед іншого, ви можете
використовувати це значення з <function>get_browser</function>, щоб
адаптувати вивід вашої сторінки під можливості браузера користувача.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTPS</varname>'</term>
<listitem>
<simpara>
Має непусте значення, якщо скрипт було запитано через протокол HTTPS.
</simpara>
<note>
<simpara>
При використанні ISAPI разом з IIS, матиме значення
<literal>off</literal>, якщо запит було здійснено не через протокол
HTTPS.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_ADDR</varname>'</term>
<term>"<varname>REMOTE_ADDR</varname>"</term>
<listitem>
<simpara>
IP-адреса, з якої користувач переглядає поточну сторінку.
@@ -306,7 +209,7 @@
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_HOST</varname>'</term>
<term>"<varname>REMOTE_HOST</varname>"</term>
<listitem>
<simpara>
Назва хоста, з якого користувач переглядає поточну сторінку. Зворотній
@@ -314,9 +217,9 @@
</simpara>
<note>
<simpara>
Ваш веб-сервер повинен бути сконфігурований, щоб створювати цю змінну.
Наприклад, в Apache вам потрібно <literal>HostnameLookups On</literal>
у файлі &httpd.conf;, щоб вона існувала. Див. також
Вебсервер необхідно сконфігурувати, так щоб створювалася ця змінна.
Наприклад, в Apache у файлі &httpd.conf; потрібна опція
<literal>HostnameLookups On</literal>. Див. також
<function>gethostbyaddr</function>.
</simpara>
</note>
@@ -324,17 +227,17 @@
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_PORT</varname>'</term>
<term>"<varname>REMOTE_PORT</varname>"</term>
<listitem>
<simpara>
Порт, який було використано на комп'ютері користувача, для зв'язку
з веб-сервером.
Порт, який було використано на комп'ютері користувача для зв'язку
з вебсервером.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_USER</varname>'</term>
<term>"<varname>REMOTE_USER</varname>"</term>
<listitem>
<simpara>
Ім'я авторизованого користувача.
@@ -343,7 +246,7 @@
</varlistentry>
<varlistentry>
<term>'<varname>REDIRECT_REMOTE_USER</varname>'</term>
<term>"<varname>REDIRECT_REMOTE_USER</varname>"</term>
<listitem>
<simpara>
Ім'я авторизованого користувача, якщо запит має внутрішню переадресацію.
@@ -352,15 +255,15 @@
</varlistentry>
<varlistentry>
<term>'<varname>SCRIPT_FILENAME</varname>'</term>
<term>"<varname>SCRIPT_FILENAME</varname>"</term>
<listitem>
<para>
Абсолютний шлях до поточного скрипта, що виконується.
<note>
<para>
Якщо скрипт виконується через CLI, з використанням відносного шляху,
такого як <filename>file.php</filename> чи
<filename>../file.php</filename>,
Якщо скрипт виконується через CLI з використанням відносного шляху,
як от <filename>file.php</filename> чи
<filename>../file.php</filename>,
<varname>$_SERVER['SCRIPT_FILENAME']</varname> буде містити цей
відносний шлях, визначений користувачем.
</para>
@@ -370,162 +273,146 @@
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_ADMIN</varname>'</term>
<term>"<varname>SERVER_ADMIN</varname>"</term>
<listitem>
<simpara>
Значення, що встановлено для директиви SERVER_ADMIN (для Apache)
в конфігураційному файлі веб-сервера. Якщо скрипт запущено на
віртуальному хості, SERVER_ADMIN матиме значення, визначене для
даного віртуального хоста.
Значення, що встановлено для директиви SERVER_ADMIN (для Apache) в
конфігураційному файлі вебсервера. Якщо скрипт запущено на віртуальному
хості, SERVER_ADMIN матиме значення, визначене для даного віртуального
хоста.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_PORT</varname>'</term>
<term>"<varname>SERVER_PORT</varname>"</term>
<listitem>
<simpara>
Порт сервера, який використовується веб-сервером для зв'язку.
Початково, встановлюється значення '<literal>80</literal>'.
Але використовуючи SSL, наприклади, це значення буде таким, яке
вказано в конфіг-файлі для з'єднання через безпечний HTTP-порт.
Порт сервера, який використовується вебсервером для зв'язку. Початково,
встановлюється значення <literal>"80"</literal>. Але використовуючи,
наприклад, SSL, це значення буде тим, що вказано в конфігураційному файлі
для з'єднання через безпечний HTTP-порт.
</simpara>
<note>
<simpara>
На Apache 2, ви повинні встановити
<literal>UseCanonicalName = On</literal>, а також
<literal>UseCanonicalPhysicalPort = On</literal> для того, щоб отримати
фізичний (реальний) порт, бо в іншому випадку, це значення може
підмінятись, а тому не буде повертатись значення фізичного порта.
Спиратись на це значення небезпечно в контексті, коли є потреба
в посиленій безпеці.
Для того, щоб отримати фізичний (реальний) порт на Apache 2, необхідно
встановити <literal>UseCanonicalName = On</literal> і
<literal>UseCanonicalPhysicalPort = On</literal>. В іншому випадку це
значення може підмінятись, а тому не буде повертатись значення фізичного
порту. Покладатися на це значення в контексті безпеки — небезпечно.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_SIGNATURE</varname>'</term>
<term>"<varname>SERVER_SIGNATURE</varname>"</term>
<listitem>
<simpara>
Рядок, що містить версію веб-сервера та назву віртуального хоста, які
додаються до сторінок, якщо на веб-сервері ця функціональність підключена.
Рядок, що містить версію вебсервера та назву віртуального хоста, які
додаються до сторінок, якщо на вебсервері ця функціональність підключена.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PATH_TRANSLATED</varname>'</term>
<term>"<varname>PATH_TRANSLATED</varname>"</term>
<listitem>
<simpara>
Шлях, що базується на файловій системі (а не на шляху до кореневого
каталога документів), який веде до поточного скрипта. PATH_TRANSLATED
матиме значення, якщо створено співставлення (мапінг) між назвою
віртуального хоста та реальним шляхом до його каталога.
Шлях, що базується на файловій системі (а не на шляху до кореневої теки
документів), який веде до поточного скрипта. PATH_TRANSLATED матиме
значення, якщо створено зіставлення між назвою віртуального хоста та
реальним шляхом до його теки.
</simpara>
<note>
<simpara>
Починаючи з PHP 4.3.2, <envar>PATH_TRANSLATED</envar> більше не
встановлюється явно на <acronym>SAPI</acronym> Apache 2, на відміну
від Apache 1, де для неї встановлюється те ж саме значення, що і
для змінної сервера <envar>SCRIPT_FILENAME</envar>, коли її не
заповнено через конфіг-файли. Ця зміна була зроблена для відповідності
зі специфікацією <acronym>CGI</acronym>, яка говорить, що змінна
<envar>PATH_TRANSLATED</envar> повинна існувати тільки тоді, коли
<envar>PATH_INFO</envar> є визначеною.
</simpara>
<simpara>
Користувачі Apache 2 можуть використовувати
<literal>AcceptPathInfo = On</literal> у файлі
<filename>httpd.conf</filename>, щоб визначити <envar>PATH_INFO</envar>.
Користувачі Apache 2 можуть використовувати <literal>AcceptPathInfo =
On</literal> у файлі <filename>httpd.conf</filename>, щоб визначити
<envar>PATH_INFO</envar>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SCRIPT_NAME</varname>'</term>
<term>"<varname>SCRIPT_NAME</varname>"</term>
<listitem>
<simpara>
Містить шлях до поточного скрипта. Це є корисним для сторінок, які
повинні посилатись на самих себе.
Константа <link linkend="language.constants.predefined">__FILE__</link>
містить повний шлях та назву файла до поточного (тобто підключеного) файла.
повинні посилатись на самих себе. Константа <link
linkend="language.constants.predefined">__FILE__</link> містить повний
шлях та назву поточного файлу.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_URI</varname>'</term>
<term>"<varname>REQUEST_URI</varname>"</term>
<listitem>
<simpara>
URI, яке передається для доступу до поточного скрипта; наприклад,
'<literal>/index.html</literal>'.
URI, який передається для доступу до поточного скрипта. Наприклад,
<literal>"/index.html"</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_DIGEST</varname>'</term>
<term>"<varname>PHP_AUTH_DIGEST</varname>"</term>
<listitem>
<simpara>
При виконанні Digest HTTP автентифікації, цій змінній передається
значення заголовка 'Authorization', що присилається клієнтом (який
потім потрібно використовувати при відповідній перевірці).
Під час виконання автентифікації Digest HTTP, цій змінній передається
значення заголовка "Authorization" (яке потім використовується для
відповідної перевірки), що присилає клієнт.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_USER</varname>'</term>
<term>"<varname>PHP_AUTH_USER</varname>"</term>
<listitem>
<simpara>
При виконанні HTTP автентифікації, цій змінній передається значення
імені користувача, що передає користувач.
Під час HTTP-автентифікації цій змінній передається ім'я користувача.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_PW</varname>'</term>
<term>"<varname>PHP_AUTH_PW</varname>"</term>
<listitem>
<simpara>
При виконанні HTTP автентифікації, цій змінній передається значення
пароля, що перередає користувач.
Під час HTTP-автентифікації цій змінній передається пароль користувача.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>AUTH_TYPE</varname>'</term>
<term>"<varname>AUTH_TYPE</varname>"</term>
<listitem>
<simpara>
При виконанні HTTP автентифікації, цій змінній передається значення
типу автентифікації.
Під час HTTP-автентифікації, цій змінній передається значення типу
автентифікації.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PATH_INFO</varname>'</term>
<term>"<varname>PATH_INFO</varname>"</term>
<listitem>
<simpara>
Містить будь-який шлях, що надається клієнтом в кінці
назви поточного скрипта, але передує рядку запита (якщо є).
Наприклад, якщо до поточного скрипта доступаються через
URL <filename>http://www.example.com/php/path_info.php/some/stuff?foo=bar</filename>,
то <varname>$_SERVER['PATH_INFO']</varname> буде містити
Містить будь-який шлях, вказаний клієнтом між назвою скрипта та
рядком запиту. Наприклад, якщо скрипт запитувати через URI
<filename>http://www.example.com/php/path_info.php/some/stuff?foo=bar</filename>,
то <varname>$_SERVER['PATH_INFO']</varname> міститиме
<literal>/some/stuff</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>ORIG_PATH_INFO</varname>'</term>
<term>"<varname>ORIG_PATH_INFO</varname>"</term>
<listitem>
<simpara>
Оригінальна версія '<varname>PATH_INFO</varname>' перед обробкою її
через PHP.
Необроблене інтерпретатором значення <varname>"PATH_INFO"</varname>.
</simpara>
</listitem>
</varlistentry>
@@ -534,45 +421,6 @@
</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>5.4.0</entry>
<entry>
Змінна <varname>$HTTP_SERVER_VARS</varname> більше не доступна через
те, що відповідні довгі масиви було видалено.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
Директива <link linkend="ini.register-long-arrays">register_long_arrays</link>,
що підключала <varname>$HTTP_SERVER_VARS</varname>, стала застарілою.
</entry>
</row>
<row>
<entry>4.1.0</entry>
<entry>
Вводиться <varname>$_SERVER</varname> на заміну застарілої
<varname>$HTTP_SERVER_VARS</varname>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>

View File

@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: ea5ef878791d0182c69e3fb69e05a7ddd97aad15 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: a1e3d629b4f01ee41bd38391cd5c6ae5ee894cb3 Maintainer: mproshchuk Status: ready -->
<sect1 xml:id="language.types.float" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Дробний (Float)</title>
<title>Десятковий дріб (float)</title>
<para>
Дробне число - число з плаваючою точкою (також відоме як "floats", "doubles", чи "real")
може записуватись з використанням будь-якого з наступних синтаксисів:
Десятковий дріб - число з рухомою крапкою (також відоме як "float", "double"
чи "real") може записуватись одним зі способів:
</para>
<informalexample>
@@ -16,19 +15,20 @@
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
$d = 1_234.567; // починаючи з PHP 7.4.0
?>
]]>
</programlisting>
</informalexample>
<para>
Формально:
Формально, починаючи з PHP 7.4.0 (до того знак підкреслення не був дозволений):
</para>
<informalexample>
<programlisting>
<![CDATA[
LNUM [0-9]+
LNUM [0-9]+(_[0-9]+)*
DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})
]]>
@@ -36,28 +36,28 @@ EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})
</informalexample>
<para>
Розмір дробного (float) залежить від платформи, хоча максимальне значення,
за звичай, рівне ~1.8e308 з точністю заокругленою до 14 десяткових цифр (при
64-бітах використовується формат IEEE).
Розмір десяткового дробу залежить від платформи, хоча зазвичай, максимальне
значення дорівнює приблизно 1.8e308 з точністю заокругленою до 14 десяткових
цифр (на 64-бітних системах використовується формат IEEE).
</para>
<warning xml:id="warn.float-precision">
<title>Точність дробного типу</title>
<title>Точність десяткового дробу</title>
<para>
Числа з плаваючою точкою мають обмежену точність. Хоча це залежить від операційної
системи, зазвичай PHP використовує формат подвійної точності IEEE 754, який
дає максимальну відносну похибку заокруглення порядка 1.11e-16. Не
елементарні арифметичні операції можуть давати більшу похибку, що, звичайно ж,
необхідно враховувати, бо збільшення кількості операцій при обрахунку
підсилює цей ефект.
Числа з рухомою точкою мають обмежену точність. Хоча це залежить від
операційної системи, зазвичай PHP використовує формат подвійної точності IEEE
754, який дає максимальну відносну похибку заокруглення 1.11e-16. Не
елементарні арифметичні операції можуть давати більшу похибку, що необхідно
враховувати, бо збільшення кількості операцій при обрахунку підсилює цей
ефект.
</para>
<para>
Окрім того, раціональні числа, які представлені саме як числа з плаваючою
точкою з основою 10, такі як <literal>0.1</literal> чи
Окрім того, раціональні числа, які представлені саме як числа з рухомою
крапкою з основою 10, такі як <literal>0.1</literal> чи
<literal>0.7</literal>, не мають точного представлення у вигляді чисел з
плаваючою точкою з основою 2, незалежно від розміру мантіси (для довідки: PHP
рухомою крапкою з основою 2, незалежно від розміру мантиси (для довідки: PHP
використовує основу 2 для внутрішніх обрахунків). Отже, вони не можуть бути
конвертовані в їхні внутрішні відповідники з основою 2, без невеликих втрат
точності. Ця особливість може призводити до заплутаних результатів:
@@ -68,57 +68,72 @@ EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})
</para>
<para>
Так що ніколи не довіряйте дробним числам до останньої цифри, та не порівнюйте
їх безпосередньо. Якщо необхідна висока точність, можна
скористатись <link linkend="ref.bc">функціями з довільною матиматичною
Не можна довіряти десятковим дробам до останньої цифри та порівнювати їх
безпосередньо. Якщо необхідна висока точність, можна скористатись <link
linkend="ref.bc">функціями з довільною математичною
точністю</link> та функціями <link linkend="ref.gmp">gmp</link>.
</para>
<para>
"Просте" пояснення можна продивитись тут
<link xlink:href="&url.floating.point.guide;">floating point guide</link>.
"Просте" пояснення можна продивитись тут:
<link xlink:href="&url.floating.point.guide;">Довідка щодо чисел з рухомою
крапкою</link>.
</para>
</warning>
<sect2 xml:id="language.types.float.casting">
<title>Конвертація до дробного (float)</title>
<title>Перетворення в десятковий дріб</title>
<para>
Щоб отримати інформацію про перетворення рядків (<type>string</type>) в
дробні числа (float), прогляньте
<link linkend="language.types.string.conversion">Перетворення рядків в
числа</link>. Для значень інших типів, спочатку виконується конвертація до
цілочисельного (<type>integer</type>), а потім вже до дробного значення
(<type>float</type>). Прогляньте
<link linkend="language.types.integer.casting">Конвертація до
цілочисельного</link>, щоб отримати детальнішу інформацію. Починаючи з PHP 5,
видається повідомлення про помилку при конвертації об'єкта
(<type>object</type>) до дробного числа (<type>float</type>).
</para>
<sect3 xml:id="language.types.float.casting.from-string">
<title>Рядки</title>
<simpara>
Якщо рядок є
<link linkend="language.types.numeric-strings">числовим</link>
або починається з числа, то його можна перетворити в відповідний десятковий
дріб, а інакше в нуль (<literal>0</literal>).
</simpara>
</sect3>
<sect3 xml:id="language.types.float.casting.from-other">
<title>Інші типи</title>
<para>
Для значень інших типів перетворення виконується спершу в <type>int</type>,
а потім з цілого в <type>float</type>. Докладніше:
<link linkend="language.types.integer.casting">Перетворення в ціле
число</link>.
</para>
<note>
<para>
Оскільки деякі типи мають невизначену поведінку під час перетворення на
<type>int</type>, це також стосується перетворення на <type>float</type>.
</para>
</note>
</sect3>
</sect2>
<sect2 xml:id="language.types.float.comparison">
<title>Порівняння дробного (float)</title>
<title>Порівняння десяткових дробів</title>
<para>
Як записано вгорі в застережені, перевірка на рівність дробних значень є
проблематичною, в зв'язку зі специфікою їх внутрішнього представлення. Тим
не менше, існують способи здійснювати порівняння дробних значень обходячи
згадані обмеження.
Як записано вгорі в застережені, перевірка на рівність десяткових дробів є
проблематичною в зв'язку зі специфікою їхньої будови. Тим не менш, існують
способи здійснювати порівняння десяткових дробів, обходячи згадані обмеження.
</para>
<para>
Щоб перевірити дробне значення на рівність, використовується верхня межа
відносної похибки для заокруглення. Це значення відоме як машинний нуль
(чи машинний епсілон, або ж міра заокруглення), та є найменшою різницею, що
приймається при розрахунках.
Для порівняння десяткових дробів використовується верхня межа відносної
похибки для заокруглення. Це значення відоме як машинний нуль (чи машинний
епсилон, або ж міра заокруглення), та є найменшою різницею, що приймається
при розрахунках.
</para>
<informalexample>
<simpara>
<varname>$a</varname> та <varname>$b</varname> є рівними з точністю до 5-ти
цифр після коми.
цифр після крапки.
</simpara>
<programlisting role="php">
<![CDATA[
@@ -128,7 +143,7 @@ $b = 1.23456780;
ашинний_нуль = 0.00001;
if(abs($a-$b) < $машинний_нуль) {
echo "$a не рівне $b";
echo "$a не дорівнює $b";
}
?>
]]>
@@ -139,11 +154,11 @@ if(abs($a-$b) < $машинний_нуль) {
<sect2 xml:id="language.types.float.nan">
<title>NaN</title>
<para>
Деякі числові операції можуть мати результат зі значенням представленим
через константу <constant>NAN</constant>. Такі результати представляють
невизначені або невідображувані значення чисел з плаваючою точкою.
Будь-які м'які чи строгі порівняння цих значень з іншими значеннями,
включаючи їх самих, будуть мати в результаті хибне значення (&false;).
Деякі числові операції можуть мати результат зі значенням костанти
<constant>NAN</constant>. Такі результати представляють невизначені або
невідображувані значення чисел з рухомою крапкою. Будь-які м'які чи строгі
порівняння цих значень з іншими значеннями, включаючи їх самих, окрім &true;,
будуть мати в результаті хибне значення (&false;).
</para>
<para>
Оскільки <constant>NAN</constant> представляє собою число з будь-якими

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 67cf4f37868965b41fcda4e51a39e3529b544879 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 67cf4f37868965b41fcda4e51a39e3529b544879 Maintainer: mproshchuk Status: wip -->
<sect1 xml:id="language.types.integer">
<title>Цілочисельний (Integers)</title>
@@ -267,8 +266,19 @@ echo (int) ( (0.1+0.7) * 10 ); // виводить 7!
<title>З рядкового типу</title>
<simpara>
Прогляньте <link linkend="language.types.string.conversion">Конвертація
значень рядкового типу до чисел</link>
If the string is
<link linkend="language.types.numeric-strings">numeric</link>
or leading numeric then it will resolve to the
corresponding integer value, otherwise it is converted to zero
(<literal>0</literal>).
</simpara>
</sect3>
<sect3 xml:id="language.types.integer.casting-from-null">
<title>From <type>NULL</type></title>
<simpara>
&null; is always converted to zero (<literal>0</literal>).
</simpara>
</sect3>

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 48ce43fe79fa0c9f31f187ea8ec995b4cb13037e Maintainer: mproshchuk Status: ready -->
<book xml:id="book.array" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="core" ?>
<title>Масиви</title>
@@ -9,25 +7,23 @@
<preface xml:id="intro.array">
&reftitle.intro;
<para>
Ці функції надають різні варіанти для маніпулювння та взаємодії з масивами.
Масиви мають істотне значення для зберігання, управління, і роботи
Ці функції надають різні варіанти для обробки та взаємодії з масивами.
Масиви мають істотне значення для зберігання, управління і роботи
з наборами змінних.
</para>
<para>
Підтримуються прості та багатовимірні масиви, вони можуть створюватись як
користувачами, так і іншими функціями. Є спеціальні функції для заповнення
масивів запитами до баз даних, та декілька фунцій, що повертають масиви.
масивів запитами до баз даних, та декілька функцій, що повертають масиви.
</para>
<para>
Будь-ласка прогляньте розділ <link linkend="language.types.array">Масиви</link>,
для детального пояснення, як вони впроваджуються
та використовуються в PHP.
Прогляньте також <link linkend="language.operators.array">Оператори Масивів</link>
для ознайомлення з іншими варіантами маніпуляцій з масивами.
У розділі <link linkend="language.types.array">Масиви</link> докладно
пояснено, як їх створювати та використовувати в PHP. Для ознайомлення з
іншими варіантами обробки масивів варто прочитати розділ <link
linkend="language.operators.array">Оператори масивів</link>.
</para>
</preface>
&reference.array.setup;
&reference.array.constants;
&reference.array.sorting;
&reference.array.reference;

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9481fbe0e0281d68ac46a6624132cd771bd3ed0c Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 9481fbe0e0281d68ac46a6624132cd771bd3ed0c Maintainer: mproshchuk Status: wip -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.array-map">
<refnamediv>
<refname>array_map</refname>
@@ -344,7 +343,6 @@ array(1) {
<member><function>array_filter</function></member>
<member><function>array_reduce</function></member>
<member><function>array_walk</function></member>
<member>&seealso.callback;</member>
</simplelist>
</para>
</refsect1>

View File

@@ -1,25 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 46a9cdd2dbef4ec89bf65fad9930e2feb78bbb98 Maintainer: mproshchuk Status: ready -->
<book xml:id="book.bc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="bundled" ?>
<title>Обрахунок з Довільною Математичною Точністю</title>
<titleabbrev>Двійковий Калькулятор</titleabbrev>
<title>BCMath — розрахунки з довільною математичною точністю</title>
<titleabbrev>BCMath</titleabbrev>
<!-- {{{ preface -->
<preface xml:id="intro.bc">
&reftitle.intro;
<para>
Для математичних обчислень з довільною точністю PHP пропонує
Двійковий Калькулятор (BC Math), котрий підтримує числа будь-якого
розміру і точності, надані у вигляді рядка.
розширення BC Math, яке дозволяє оперувати числами будь-якого розміру і
точності, представленими у вигляді рядків, аж до
<literal>2147483647</literal> (<literal>0x7FFFFFFF</literal>) знаків або
обмежуючись виділеною пам'яттю.
</para>
<para>
Правильними числами для BCMath є рядки, що відповідають регулярному виразу
<literal>/^[+-]?[0-9]*(\.[0-9]*)?$/</literal>.
</para>
<caution>
<para>
Передавання числа типу <type>float</type> в функції BCMath, які очікують
операнди типу <type>string</type>, може не мати бажаного ефекту через
спосіб, яким PHP перетворює <type>float</type>-значення в
<type>string</type>, а саме: рядок (<type>string</type>) може
отримати експонентний запис числа (що не підтримується BCMath); до PHP 8.0.0
символ десяткового розділювача залежить від локалі (тоді як BCMath очікує
крапку).
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$num1 = 0; // (string) 0 => '0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'
setlocale(LC_NUMERIC, 'de_DE'); // розділювач — кома
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>
]]>
</programlisting>
</informalexample>
</caution>
</preface>
<!-- }}} -->
&reference.bc.setup;
&reference.bc.constants;
&reference.bc.reference;
</book>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 46a9cdd2dbef4ec89bf65fad9930e2feb78bbb98 Maintainer: mproshchuk Status: ready -->
<book xml:id="book.bzip2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="bundledexternal" ?>
@@ -17,7 +16,6 @@
<!-- }}} -->
&reference.bzip2.setup;
&reference.bzip2.constants;
&reference.bzip2.examples;
&reference.bzip2.reference;

View File

@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 5032f41c27538326b916a1917a1308fddc099b5c Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 4d17b7b4947e7819ff5036715dd706be87ae4def Maintainer: mproshchuk Status: wip -->
<reference xml:id="class.datetime" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Клас DateTime</title>
@@ -15,6 +13,21 @@
<para>
Представлення дати й часу.
</para>
<para>
This class behaves the same as <classname>DateTimeImmutable</classname>,
except objects are modified itself when modification methods such as
<function>DateTime::modify</function> are called.
</para>
<warning>
<para>
Calling methods on objects of the class <classname>DateTime</classname>
will change the information encapsulated in these objects, if you want to
prevent that you will have to use <literal>clone</literal> operator to
create a new object. Use <classname>DateTimeImmutable</classname>
instead of <classname>DateTime</classname> to obtain this recommended
behaviour by default.
</para>
</warning>
</section>
<!-- }}} -->
@@ -22,40 +35,32 @@
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>DateTime</classname></ooclass>
<classsynopsis class="class">
<ooclass>
<classname>DateTime</classname>
</ooclass>
<oointerface>
<modifier>implements</modifier>
<interfacename>DateTimeInterface</interfacename>
</oointerface>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>DateTime</classname>
</ooclass>
<oointerface>
<interfacename>DateTimeInterface</interfacename>
</oointerface>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&InheritedConstants;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetimeinterface')/db:partintro/db:section/db:classsynopsis/db:fieldsynopsis[preceding-sibling::db:classsynopsisinfo[1][@role='comment' and text()='&Constants;']]))">
<xi:fallback />
<xi:fallback/>
</xi:include>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetime')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])">
<xi:fallback />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetime')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='DateTime'])">
<xi:fallback/>
</xi:include>
<!--
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetime')/db:refentry/db:refsect1[@role='description']/descendant::db:destructorsynopsis[not(@role='procedural')])">
<xi:fallback />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetime')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='DateTime'])">
<xi:fallback/>
</xi:include>
-->
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetime')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback />
</xi:include>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetimeinterface')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='oop'])" />
</classsynopsis>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.datetimeinterface')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='DateTime'])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
@@ -80,33 +85,11 @@
</entry>
</row>
<row>
<entry>7.0.0</entry>
<entry>7.1.0</entry>
<entry>
Added constants: <link linkend="datetime.constants.rfc3339_extended">DATE_RFC3339_EXTENDED</link> and
<link linkend="datetime.constants.rfc3339_extended">DateTime::RFC3339_EXTENDED</link>.
</entry>
</row>
<row>
<entry>5.5.0</entry>
<entry>
Клас тепер впроваджує <classname>DateTimeInterface</classname>.
</entry>
</row>
<row>
<entry>5.4.24</entry>
<entry>
Константа COOKIE змінена у відповідності до RFC 1036, і тепер
використовується чотири цифри року, замість двох цифр року,
як було в попередній версії (RFC 850).
</entry>
</row>
<row>
<entry>5.2.2</entry>
<entry>
Результати порівняння об'єктів DateTime при використанні
<link linkend="language.operators.comparison">операторів порівняння</link>
тепер працюють як очікується. Раніше, всі об'єкти DateTime вважались
еквівалентними (використовуючи <literal>==</literal>).
The <classname>DateTime</classname> constructor now includes the
current microseconds in the constructed value. Before this, it would
always initialise the microseconds to <literal>0</literal>.
</entry>
</row>
</tbody>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: df92f1fd1ce8e5450fee9f7cb2c47698d8063b76 Maintainer: ktretyak Status: wip -->
<!-- $Revision$ -->
<!-- EN-Revision: df92f1fd1ce8e5450fee9f7cb2c47698d8063b76 Maintainer: mproshchuk Status: ready -->
<section xml:id="dbase.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.install;
<para>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 48ce43fe79fa0c9f31f187ea8ec995b4cb13037e Maintainer: mproshchuk Status: ready -->
<book xml:id="book.dir" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="core" ?>
@@ -15,7 +14,6 @@
</preface>
}}} -->
&reference.dir.setup;
&reference.dir.constants;
&reference.dir.directory;
&reference.dir.reference;

View File

@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: mproshchuk Status: ready -->
<reference xml:id="ref.dir" xmlns="http://docbook.org/ns/docbook">
<title>&Functions; для роботи з директорією</title>
<title>&Functions; для роботи з теками</title>
<partintro>
&reftitle.seealso;
<para>
Для відповідних функцій, таких як <function>dirname</function>,
<function>is_dir</function>, <function>mkdir</function>, та
<function>rmdir</function>, прогляньте розділ
Функції <function>dirname</function>, <function>is_dir</function>,
<function>mkdir</function>, та <function>rmdir</function> описані у розділі
<link linkend="ref.filesystem">Файлова система</link>.
</para>
</partintro>

View File

@@ -1,21 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: ktretyak Status: wip -->
<!-- $Revision$ -->
<!-- EN-Revision: 48ce43fe79fa0c9f31f187ea8ec995b4cb13037e Maintainer: mproshchuk Status: ready -->
<book xml:id="book.funchand" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="core" ?>
<title>Function Handling</title>
<title>Обробка функцій</title>
<preface xml:id="intro.funchand">
&reftitle.intro;
<para>
These functions all handle various operations involved in working
with functions.
Усі ці функції обробляють різноманітні операції над функціями.
</para>
</preface>
&reference.funchand.setup;
&reference.funchand.constants;
&reference.funchand.reference;
</book>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 46a9cdd2dbef4ec89bf65fad9930e2feb78bbb98 Maintainer: mproshchuk Status: ready -->
<book xml:id="book.mail" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="core" ?>
@@ -16,7 +15,6 @@
<!-- }}} -->
&reference.mail.setup;
&reference.mail.constants;
&reference.mail.reference;
</book>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8a22143e78dd128da4cf2d5896c82b23788831c7 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: mproshchuk Status: ready -->
<refentry xml:id="function.gethostbyaddr" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>gethostbyaddr</refname>
@@ -11,12 +10,12 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>gethostbyaddr</methodname>
<methodparam><type>string</type><parameter>ip_address</parameter></methodparam>
<type class="union"><type>string</type><type>false</type></type><methodname>gethostbyaddr</methodname>
<methodparam><type>string</type><parameter>ip</parameter></methodparam>
</methodsynopsis>
<para>
Повертає назву хоста в інтернеті, по заданій IP-адресі через параметр
<parameter>ip_address</parameter>.
Повертає назву хоста в інтернеті за заданою IP-адресою через параметр
<parameter>ip</parameter>.
</para>
</refsect1>
@@ -25,7 +24,7 @@
<para>
<variablelist>
<varlistentry>
<term><parameter>ip_address</parameter></term>
<term><parameter>ip</parameter></term>
<listitem>
<para>
IP-адреса хоста.
@@ -39,9 +38,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Повертає назву хоста при успіху, незмінений параметр
<parameter>ip_address</parameter>
при невдачі, або &false; при некоректному введенні параметра.
Повертає назву хоста у разі успіху, незмінений параметр
<parameter>ip</parameter> у разі невдачі, &false; при некоректному введенні
параметра.
</para>
</refsect1>

View File

@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 14af302c9c0e561fa6f9cdd956268758ba9a89c5 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 8d1ee58c3e2221d58050f162ec909cbe6d00cbaf Maintainer: mproshchuk Status: ready -->
<reference xml:id="ref.pdo-sqlite" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="bundledexternal" ?>
<title>Функції SQLite (PDO_SQLITE)</title>
@@ -11,19 +9,9 @@
<section xml:id="pdo-sqlite.intro">
&reftitle.intro;
<para>
PDO_SQLITE це драйвер, що впроваджує <link linkend="intro.pdo">інтерфейс
PDO_SQLITE це драйвер, що реалізує <link linkend="intro.pdo">інтерфейс
PHP Data Objects (PDO)</link> для підключення до бази даних SQLite 3.
</para>
<para>
В PHP 5.1, розширення <link linkend="ref.sqlite">SQLite</link> також
надає драйвер для бази даних SQLite 2; хоча технічно він не є
частиною драйвера PDO_SQLITE, але має схожу поведінку, то ж їх документацію
розміщуємо поруч. Драйвер SQLite 2 для PDO насамперед забезпечує легкий
імпорт файлів застарівшої бази даних SQLite 2 для застосунків, що
використовують швидкий та більш ефективний драйвер SQLite 3. Отже,
драйвер SQLite 2 не є на стільки ж багатофункціональним як
драйвер SQLite 3.
</para>
<note>
<para>
PDO_SQLITE дозволяє використовувати рядки окремо від потоків разом з
@@ -55,53 +43,25 @@
<itemizedlist>
<listitem>
<para>
Щоб підключитись до диска, додайте абсолютний шлях після префікса DSN.
Щоб підключитись до диска, потрібно абсолютний шлях після префікса DSN.
</para>
</listitem>
<listitem>
<para>
Щоб створити базу даних в пам'яті, додайте запис
Щоб створити базу даних в пам'яті, потрібно додати запис
<literal>:memory:</literal> після префікса DSN.
</para>
</listitem>
<listitem>
<para>
Якщо DSN складається лише з префіксу DSN, використовується тимчасова
база даних, яка видаляється після закриття з’єднання.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Префікс DSN (SQLite 2)</term>
<listitem>
<para>
Розширення <link linkend="ref.sqlite">SQLite</link> в
PHP 5.1 надає драйвер PDO, що дозволяє створювати та обслуговувати
базу даних SQLite 2.
</para>
<note>
<para>
Драйвер sqlite2 доступний в PHP 5.1.x лише якщо ви підключили
PDO та розширення sqlite. Зараз він недоступний через PECL.
</para>
</note>
<para>
Префікс DSN для підключення до бази даних SQLite 2 пишеться також
з двокрапкою в кінці <userinput>sqlite2:</userinput>
<itemizedlist>
<listitem>
<para>
Щоб підключитись до диска, додайте абсолютний шлях після префікса DSN.
</para>
</listitem>
<listitem>
<para>
Щоб створити базу даних в пам'яті, додайте запис
<literal>:memory:</literal> після префікса DSN.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
@@ -117,8 +77,7 @@
<![CDATA[
sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite2:/opt/databases/mydb.sq2
sqlite2::memory:
sqlite:
]]>
</programlisting>
</para>
@@ -130,8 +89,7 @@ sqlite2::memory:
&reference.pdo-sqlite.entities.PDO;
</reference>
<!-- <link linkend="ref.sqlite">SQLite</link> -->
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,18 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: d3c871ae1e218ab417e15731c9dee930149baad0 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: d51166ca16fda8e766849505b84f9306ef443f71 Maintainer: mproshchuk Status: ready -->
<refentry xml:id="splfileobject.eof" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>SplFileObject::eof</refname>
<refpurpose>Визначає чи досягнуто кінець файла</refpurpose>
<refpurpose>Визначає, чи досягнуто кіння файлу</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<methodsynopsis role="SplFileObject">
<modifier>public</modifier> <type>bool</type><methodname>SplFileObject::eof</methodname>
<void />
<void/>
</methodsynopsis>
<para>
Визначає чи досягнуто кінець файла
@@ -27,7 +25,7 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Повертає &true; якщо було досягнено кінець файла, &false; - в противному разі.
Повертає &true; якщо досягнуто кінця файлу, в іншому разі — &false;.
</para>
</refsect1>

View File

@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: df58adf8fff5cf7dea921a841e28ea2478e678ea Maintainer: mproshchuk Status: ready -->
<book xml:id="book.sqlite3" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="bundled" ?>
<title>SQLite3</title>
@@ -10,13 +8,14 @@
<preface xml:id="intro.sqlite3">
&reftitle.intro;
<para>
Підтримка баз даних SQLite третьої версії.
Підтримка баз даних SQLite 3.
</para>
</preface>
&reference.sqlite3.setup;
&reference.sqlite3.constants;
&reference.sqlite3.sqlite3;
&reference.sqlite3.sqlite3exception;
&reference.sqlite3.sqlite3stmt;
&reference.sqlite3.sqlite3result;

View File

@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9cfc780d75b8b125a5330ea8b5e673992de88691 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 61374bbe228e8e9c55a24aba59a1e2bb2a871148 Maintainer: mproshchuk Status: wip -->
<refentry xml:id="sqlite3.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>SQLite3::__construct</refname>
@@ -12,12 +10,12 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<constructorsynopsis role="SQLite3">
<modifier>public</modifier> <methodname>SQLite3::__construct</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>encryption_key</parameter></methodparam>
</methodsynopsis>
<methodparam choice="opt"><type>string</type><parameter>encryptionKey</parameter><initializer>""</initializer></methodparam>
</constructorsynopsis>
<para>
Створює об'єкт класа SQLite3 та відкриває з'єднання для бази даних SQLite 3.
Якщо база даних має шифрування, то буде спроба використати <parameter>encryption_key</parameter>
@@ -35,6 +33,9 @@
<para>
Шлях до бази даних SQLite, або рядок із записом <literal>:memory:</literal>,
щоб використовувати базу даних в пам'яті.
If <parameter>filename</parameter> is an empty string, then a private, temporary on-disk
database will be created. This private database will be automatically
deleted as soon as the database connection is closed.
</para>
</listitem>
</varlistentry>
@@ -44,23 +45,23 @@
<para>
Необов'язковий флаг, для визначення - як саме
відкривати базу даних SQLite. Початково, при відкритті використовується
<literal>SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE</literal>.
<constant>SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE</constant>.
<itemizedlist>
<listitem>
<para>
<literal>SQLITE3_OPEN_READONLY</literal>: Відкриває базу даних лише
<constant>SQLITE3_OPEN_READONLY</constant>: Відкриває базу даних лише
для читання.
</para>
</listitem>
<listitem>
<para>
<literal>SQLITE3_OPEN_READWRITE</literal>: Відкриває базу даних для
<constant>SQLITE3_OPEN_READWRITE</constant>: Відкриває базу даних для
читання та запису.
</para>
</listitem>
<listitem>
<para>
<literal>SQLITE3_OPEN_CREATE</literal>: Створює базу даних,
<constant>SQLITE3_OPEN_CREATE</constant>: Створює базу даних,
якщо вона не існує.
</para>
</listitem>
@@ -69,11 +70,12 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>encryption_key</parameter></term>
<term><parameter>encryptionKey</parameter></term>
<listitem>
<para>
Необов'язковий ключ шифра, що використовується при шифруванні та
дешифруванні бази даних SQLite.
дешифруванні бази даних SQLite. If the SQLite encryption module is not installed,
this parameter will have no effect.
</para>
</listitem>
</varlistentry>
@@ -82,19 +84,35 @@
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Повертає об'єкт бази даних SQLite3 при успіху.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Кидає <classname>Exception</classname> в разі помилки.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.0.10</entry>
<entry>
The <parameter>filename</parameter> can now be empty to use a private,
temporary on-disk database.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
@@ -106,7 +124,7 @@
<?php
$db = new SQLite3('mysqlitedb.db');
$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec('CREATE TABLE foo (bar TEXT)');
$db->exec("INSERT INTO foo (bar) VALUES ('Це перевірка')");
$result = $db->query('SELECT bar FROM foo');

View File

@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: ktretyak Status: ready -->
<!-- $Revision$ -->
<!-- EN-Revision: 46a9cdd2dbef4ec89bf65fad9930e2feb78bbb98 Maintainer: mproshchuk Status: ready -->
<book xml:id="book.var" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="core" ?>
<title>Обробка змінних</title>
@@ -9,14 +7,13 @@
<preface xml:id="intro.var">
&reftitle.intro;
<para>
Щоб ознайомитись з тим, як змінні поводяться, прогляньте
розділ <link linkend="language.variables">Змінні</link> главі
<link linkend="langref">Довідник для PHP</link> даного посібника.
Інформація для ознайомлення з тим, як змінні поводяться, надана у розділі
<link linkend="language.variables">Змінні</link> глави
<link linkend="langref">Довідник для PHP</link> цього посібника.
</para>
</preface>
&reference.var.setup;
&reference.var.constants;
&reference.var.reference;
</book>