<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.luasandboxfunction.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'luasandboxfunction.call.php',
    1 => 'LuaSandboxFunction::call',
    2 => 'Вызывает Lua-функцию',
  ),
  'up' => 
  array (
    0 => 'class.luasandboxfunction.php',
    1 => 'LuaSandboxFunction',
  ),
  'prev' => 
  array (
    0 => 'class.luasandboxfunction.php',
    1 => 'LuaSandboxFunction',
  ),
  'next' => 
  array (
    0 => 'luasandboxfunction.construct.php',
    1 => 'LuaSandboxFunction::__construct',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/luasandbox/luasandboxfunction/call.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="luasandboxfunction.call" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">LuaSandboxFunction::call</h1>
  <p class="verinfo">(PECL luasandbox &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">LuaSandboxFunction::call</span> &mdash; <span class="dc-title">Вызывает Lua-функцию</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-luasandboxfunction.call-description">
  <h3 class="title">Описание</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>LuaSandboxFunction::call</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">...$args</code></span>): <span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></span></div>

  <p class="simpara">
   Вызывает Lua-функцию.
  </p>
  <p class="simpara">
   Ошибки, вызванные PHP-кодом, приведут к тому, что функция вернёт
   <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> и будет вызвано предупреждение
   <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>, например, когда тип ресурса (<span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>)
   используется в качестве аргумента. При возникновении ошибок Lua будет
   выброшено исключение <span class="classname"><a href="class.luasandboxruntimeerror.php" class="classname">LuaSandboxRuntimeError</a></span>.
  </p>
  <p class="simpara">
   Типы PHP и Lua преобразуются следующим образом:
  </p>
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara"><strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> в PHP - это <code class="literal">nil</code> в Lua и наоборот.</span>
   </li>
   <li class="listitem">
    <span class="simpara">
     Целые числа (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>) и числа с плавающей точкой
     (<span class="type"><a href="language.types.float.php" class="type float">float</a></span>) в PHP преобразуются в числа Lua.
     Поддерживаются бесконечность и <strong><code><a href="math.constants.php#constant.nan">NAN</a></code></strong>.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     Числа Lua без дробной части в диапазоне приблизительно от
     <code class="literal">-2**53</code> и <code class="literal">2**53</code> преобразуются в
     целые числа (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>) PHP, а другие - в числа PHP с плавающей
     точкой (<span class="type"><a href="language.types.float.php" class="type float">float</a></span>).
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     Логические значения в PHP (<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>) - это значения типа
     boolean в Lua и наоборот.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     Строки в PHP (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>) - это значения типа string в Lua и
     наоборот.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     Функции Lua - это объекты PHP <span class="classname"><a href="class.luasandboxfunction.php" class="classname">LuaSandboxFunction</a></span>,
     и наоборот. Callback-функции PHP (<span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span>) не поддерживаются.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     Массивы PHP (<span class="type"><a href="language.types.array.php" class="type array">array</a></span>) преобразуются в таблицы Lua и наоборот.
    </span>
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       Обратите внимание, что Lua обычно индексирует массивы с 1, в то время
       как PHP индексирует массивы с 0. Никаких корректировок для этих
       различных соглашений не делается.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Массивы, ссылающиеся сами на себя, не поддерживаются ни в одном из
       направлений.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">Ссылки PHP разыменовываются.</span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <code class="literal">__pairs</code> и <code class="literal">__ipairs</code> из Lua
       обрабатываются. <code class="literal">__index</code> игнорируется.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       При преобразовании из PHP в Lua целочисленные ключи от
       <code class="literal">-2**53</code> до <code class="literal">2**53</code> представляются
       как числа в Lua. Все остальные ключи представлены в виде строк Lua.
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       При преобразовании из Lua в PHP отличные от строк и чисел ключи
       приведут к возникновению ошибки, как и конфликты при преобразовании
       чисел в строки или наоборот (поскольку PHP считает такие конструкции,
       как <code class="literal">$a[0]</code> и <code class="literal">$a[&quot;0&quot;]</code>
       эквивалентными).
      </span>
     </li>
    </ul>
   </li>
   <li class="listitem">
    <span class="simpara">
     Все остальные типы не поддерживаются и вызовут ошибку/выбросят исключение,
     включая PHP-объекты (<span class="type"><a href="language.types.object.php" class="type object">object</a></span>), пользовательские данные Lua и
     типы потоков.
    </span>
   </li>
  </ul>
  <p class="simpara">
   Функции Lua по своей сути возвращают список результатов. Таким образом,
   в случае успешного выполнения этот метод возвращает массив (<span class="type"><a href="language.types.array.php" class="type array">array</a></span>),
   содержащий все значения, возвращаемые Lua, с целочисленными ключами
   (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>), начинающимися с нуля. Lua может не возвращать результатов,
   и в этом случае возвращается пустой массив.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-luasandboxfunction.call-parameters">
  <h3 class="title">Список параметров</h3>
  <dl>
   
    <dt><code class="parameter">args</code></dt>
    <dd>
     <span class="simpara">
      Аргументы, передаваемые в функцию.
     </span>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-luasandboxfunction.call-returnvalues">
  <h3 class="title">Возвращаемые значения</h3>
  <p class="simpara">
   Возвращает массив значений (<span class="type"><a href="language.types.array.php" class="type array">array</a></span>), возвращаемых функцией,
   который может быть пустым или <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>, если возникла ошибка.
  </p>
 </div>


</div><?php manual_footer($setup); ?>