svn: /phpdoc/bg/trunk/language/control-structures/ include.xml
[email protected] (Stanislav Yordanov) Thu, 07 Jan 2016 13:03:06 +0000
| Newsgroups | php.doc.bg |
|---|---|
| Message-ID | <[email protected]> |
stanprog Thu, 07 Jan 2016 13:03:06 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=338419
Log:
sync to EN
Changed paths:
U phpdoc/bg/trunk/language/control-structures/include.xml
svn-diffs-338419.txt
(text/x-diff, 13.3 KB)
Modified: phpdoc/bg/trunk/language/control-structures/include.xml
===================================================================
--- phpdoc/bg/trunk/language/control-structures/include.xml 2016-01-07 00:28:31 UTC (rev 338418)
+++ phpdoc/bg/trunk/language/control-structures/include.xml 2016-01-07 13:03:06 UTC (rev 338419)
@@ -1,40 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: n/a Maintainer: kouber Status: ready -->
-
+<!-- EN-Revision: 337282 Maintainer: stanprog Status: ready -->
+<!-- Reviewed: no Maintainer: stanprog -->
+<!-- CREDITS: kouber -->
<sect1 xml:id="function.include" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
- <title><function>include</function></title>
- <simpara>
+ <title>include</title>
+ <?phpdoc print-version-for="include"?>
+ <simpara>
Инструкцията <function>include</function> включва и изпълнява даден файл.
</simpara>
<simpara>
- Документацията по-долу се отнася също и за <function>require</function>.
- Двете конструкции са идентични във всяко едно отношение, с изключение на начина, по който
- обработват грешки. Те и двете предизвикват <link linkend="errorfunc.constants.errorlevels.e-warning">предупреждение</link>, но
- <function>require</function> предизвиква също и <link linkend="errorfunc.constants.errorlevels.e-error">
- фатална грешка</link>. С други думи, не се колебайте да използвате
- <function>require</function> ако искате липсващ файл да спре изпълнението на скрипта. <function>include</function> не се държи по този начин, скриптът ще продължи независимо
- от липсата. Трябва също така да сте сигурни, че имате подходяща стойност за <link linkend="ini.include-path">include_path</link>.
- Трябва да знаете, че грешка в синтаксиса на изисквания файл няма да предизвика
- спиране на изпълнението във версии на PHP преди PHP 4.3.5. От тази версия нататък - ще го предизвика.
+ Документацията по-долу важи също и за <function>require</function>.
</simpara>
<simpara>
- Файловете за включване се търсят първо в пътя за включване (include_path) относително спрямо
- текущата работна директория, а след това - в директорията на
- текущия скрипт. Например, ако пътят ви за включване е <literal>libraries</literal>, текущата
- работна директория е <filename class="directory">/www/</filename>,
- вие сте включили <filename>include/a.php</filename> и там има <literal>include "b.php"</literal>
- в този файл, за <filename>b.php</filename> ще бъде търсено първо в <filename class="directory">/www/libraries/</filename>,
- а после във <filename class="directory">/www/include/</filename>.
- Ако името на файла започва с <literal>./</literal> или <literal>../</literal>, той ще бъде
- потърсен само в текущата работна директория.
+ Файловете се включват на базата на предадения файлов път, а ако не е предаден,
+ на базата на <link linkend="ini.include-path">include_path</link>. Ако файлът
+ не бъде открит в <link linkend="ini.include-path">include_path</link>,
+ <literal>include</literal> ще провери в директорията на извикващия скрипт
+ и текущата директория преди да върне грешка. Контрукцията <literal>include</literal>
+ ще генерира <link linkend="errorfunc.constants.errorlevels.e-warning">предупреждение</link>,
+ ако не може да намери файла. Това е поведение е различно от поведението на <function>require</function>,
+ която ще генерира <link linkend="errorfunc.constants.errorlevels.e-error">фатална грешка</link>.
</simpara>
+ <simpara>
+ Ако е указан път – независимо дали е абсолютен (започващ с име на устройство
+ или <literal>\</literal> при Уиндус или <literal>/</literal> в Юникс/Линукс
+ системи) или относителен спрямо текущата директория (започващ с
+ <literal>.</literal> или <literal>..</literal>) –
+ <link linkend="ini.include-path">include_path</link> ще бъде напълно
+ игнориран. Например, ако името на файл започва с <literal>../</literal>,
+ синтактичния анализатор ще търси в предходната директория за да намери заявения файл.
+ </simpara>
<simpara>
- Когато даден файл бива включван, кодът в него наследява <link linkend="language.variables.scope">областта на
- действие на променливите</link> на реда, на който става включването. От този момент нататък, всяка променлива,
- налична на този ред в извикващия файл ще бъде налична и в извиквания файл.
- Всички функции и класове, дефинирани във включвания файл, ще имат глобална област на действие.
+ За повече информация относно това как PHP работи с файловете за включване и пътят за включване,
+ вижте документацията за <link linkend="ini.include-path">include_path</link>.
</simpara>
+ <simpara>
+ Когато даден файл бива включван, кодът в него наследява
+ <link linkend="language.variables.scope">областта на действие на променливите</link> на реда,
+ на който става включването. От този момент нататък, всяка променлива, налична на този ред
+ в извикващия файл ще бъде налична и в извиквания файл.
+ Всички функции и класове, дефинирани във включвания файл, ще имат
+ глобална област на действие.
+ </simpara>
<para>
<example>
<title>Основен пример за <function>include</function></title>
@@ -59,8 +67,8 @@
?>
]]>
- </programlisting>
- </example>
+ </programlisting>
+ </example>
</para>
<simpara>
Ако включването е вътре във функция в извикващия файл,
@@ -74,7 +82,7 @@
</simpara>
<para>
<example>
- <title>Включване във функции</title>
+ <title>Включване във функции</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -109,7 +117,7 @@
валидни тагове за начало и край в PHP</link>.
</simpara>
<simpara>
- Ако "<link linkend="ini.allow-url-fopen">опаковката URL fopen</link>"
+ Ако "<link linkend="ini.allow-url-include">опаковката URL include</link>"
е включена в PHP (а тя е в конфигурацията по подразбиране),
можете да укажете файла, който да бъде включен, посредством URL (през HTTP или
друга поддържана опаковка - вижте <xref linkend="wrappers"/> за списък на
@@ -120,7 +128,6 @@
родителския файл; всъщност скриптът се пуска на отдалечения сървър и резултатът
чак тогава се включва в локалния скрипт.
</simpara>
- &warn.no-win32-fopen-wrapper;
<para>
<example>
<title><function>include</function> през HTTP</title>
@@ -166,16 +173,20 @@
</warning>
<para>
Вж. също <link linkend="features.remote-files">Отдалечени файлове</link>,
- <function>fopen</function> и <function>file</function> за информация по темата.
+ <function>fopen</function> и <function>file</function> за
+ информация по темата.
</para>
<simpara>
- Обработка на връщания: Възможно е да се изпълни инструкция <function>return</function>
+ Обработка на връщания: <literal>include</literal> връща
+ <literal>FALSE</literal> при неуспех и генерира предупреждение. Успешното
+ включване, освен ако не е предефнирано от включения файл връща
+ <literal>1</literal>. Възможно е да се изпълни инструкция <function>return</function>
във включван файл, за да се прекъсне изпълнението на този файл
и да се предаде контролът към извикващия скрипт. Също така е възможно да се
връщат стойности от включвани файлове. Можете да вземете стойността
на включвания файл, както бихте го направили с нормална функция.
Това обаче не е възможно, когато включвате отдалечени файлове, освен ако
- отдалеченият файл има <link linkend="language.basic-syntax.phpmode">валидни тагове за
+ отдалеченият файл има <link linkend= "language.basic-syntax.phpmode">валидни тагове за
начало и край в PHP</link> (както и за локални файлове). Можете да декларирате
нужните променливи в тези тагове и те ще бъдат внесени в точката на
включването.
@@ -189,13 +200,13 @@
<programlisting role="php">
<![CDATA[
<?php
-// няма да работи, ще се изчисли като include(('vars.php') == 'OK'), т.е. include('')
-if (include('vars.php') == 'OK') {
+// няма да работи, ще се изчисли като include(('vars.php') == TRUE), т.е. include('')
+if (include('vars.php') == TRUE) {
echo 'OK';
}
// работи
-if ((include 'vars.php') == 'OK') {
+if ((include 'vars.php') == TRUE) {
echo 'OK';
}
?>
@@ -206,7 +217,7 @@
<para>
<example>
<title><function>include</function> и инструкцията <function>return</function></title>
- <programlisting role="php">
+ <programlisting role="php">
<![CDATA[
return.php
<?php
@@ -237,7 +248,7 @@
?>
]]>
- </programlisting>
+ </programlisting>
</example>
</para>
<simpara>
@@ -245,7 +256,7 @@
е било успешно. Отбележете разликата в горните примери. Първият използва
<function>return</function> във включвания файл, докато другият - не.
В случай че файлът не може да бъде включен, ще бъде върната стойност &false;
- и ще се изведе <literal>E_WARNING</literal>.
+ и ще се изведе <constant>E_WARNING</constant>.
</simpara>
<para>
Ако има функции, дефинирани във включвания файл, то те могат да бъдат използвани в
@@ -263,7 +274,7 @@
<para>
<example>
<title>Буфериране на изхода с цел включване на PHP файл в низ</title>
- <programlisting role="php">
+ <programlisting role="php">
<![CDATA[
<?php
$string = get_include_contents('somefile.php');
@@ -272,16 +283,14 @@
if (is_file($filename)) {
ob_start();
include $filename;
- $contents = ob_get_contents();
- ob_end_clean();
- return $contents;
+ return ob_get_clean();
}
return false;
}
?>
]]>
- </programlisting>
+ </programlisting>
</example>
</para>
<para>
@@ -293,11 +302,11 @@
</para>
¬e.language-construct;
-
+
<simpara>
Вж. също <function>require</function>, <function>require_once</function>,
- <function>include_once</function>, <function>get_included_files</function>, <function>readfile</function>,
- <function>virtual</function> и
+ <function>include_once</function>, <function>get_included_files</function>,
+ <function>readfile</function>, <function>virtual</function> и
<link linkend="ini.include-path">include_path</link>.
</simpara>
</sect1>