<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.reflectionclass.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'reflectionclass.isinstantiable.php',
    1 => 'ReflectionClass::isInstantiable',
    2 => 'Проверяет, возможно ли создать экземпляр класса',
  ),
  'up' => 
  array (
    0 => 'class.reflectionclass.php',
    1 => 'ReflectionClass',
  ),
  'prev' => 
  array (
    0 => 'reflectionclass.isinstance.php',
    1 => 'ReflectionClass::isInstance',
  ),
  'next' => 
  array (
    0 => 'reflectionclass.isinterface.php',
    1 => 'ReflectionClass::isInterface',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/reflection/reflectionclass/isinstantiable.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="reflectionclass.isinstantiable" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">ReflectionClass::isInstantiable</h1>
  <p class="verinfo">(PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">ReflectionClass::isInstantiable</span> &mdash; <span class="dc-title">Проверяет, возможно ли создать экземпляр класса</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-reflectionclass.isinstantiable-description">
  <h3 class="title">Описание</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>ReflectionClass::isInstantiable</strong></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   Метод проверяет, возможно ли создать экземпляр класса.
  </p>

 </div>


 <div class="refsect1 parameters" id="refsect1-reflectionclass.isinstantiable-parameters">
  <h3 class="title">Список параметров</h3>
  
<p class="para">
 Сигнатура функции не содержит параметров.
</p>

 </div>


 <div class="refsect1 returnvalues" id="refsect1-reflectionclass.isinstantiable-returnvalues">
  <h3 class="title">Возвращаемые значения</h3>
  <p class="para">
   Метод возвращает значение <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, если возможно создать экземпляр класса, иначе возвращает значение <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-reflectionclass.isinstantiable-examples">
  <h3 class="title">Примеры</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Пример #1 Пример проверки доступности инстанцирования класса методом <span class="methodname"><strong>ReflectionClass::isInstantiable()</strong></span></strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">C </span><span style="color: #007700">{}<br /><br />interface </span><span style="color: #0000BB">iface<br /></span><span style="color: #007700">{<br />    function </span><span style="color: #0000BB">f1</span><span style="color: #007700">();<br />}<br /><br />class </span><span style="color: #0000BB">ifaceImpl </span><span style="color: #007700">implements </span><span style="color: #0000BB">iface<br /></span><span style="color: #007700">{<br />    function </span><span style="color: #0000BB">f1</span><span style="color: #007700">() {}<br />}<br /><br />abstract class </span><span style="color: #0000BB">abstractClass<br /></span><span style="color: #007700">{<br />    function </span><span style="color: #0000BB">f1</span><span style="color: #007700">() {}<br />    abstract function </span><span style="color: #0000BB">f2</span><span style="color: #007700">();<br />}<br /><br />class </span><span style="color: #0000BB">D </span><span style="color: #007700">extends </span><span style="color: #0000BB">abstractClass<br /></span><span style="color: #007700">{<br />    function </span><span style="color: #0000BB">f2</span><span style="color: #007700">() {}<br />}<br /><br />trait </span><span style="color: #0000BB">T<br /></span><span style="color: #007700">{<br />    function </span><span style="color: #0000BB">f1</span><span style="color: #007700">() {}<br />}<br /><br />class </span><span style="color: #0000BB">privateConstructor<br /></span><span style="color: #007700">{<br />    private function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">() {}<br />}<br /><br /></span><span style="color: #0000BB">$classes </span><span style="color: #007700">= array(<br />    </span><span style="color: #DD0000">"C"</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"iface"</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"ifaceImpl"</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"abstractClass"</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"D"</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"T"</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"privateConstructor"</span><span style="color: #007700">,<br />);<br /><br />foreach (</span><span style="color: #0000BB">$classes </span><span style="color: #007700">as </span><span style="color: #0000BB">$class</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$reflectionClass </span><span style="color: #007700">= new </span><span style="color: #0000BB">ReflectionClass</span><span style="color: #007700">(</span><span style="color: #0000BB">$class</span><span style="color: #007700">);<br />    echo </span><span style="color: #DD0000">"Возможно ли создать экземпляр класса </span><span style="color: #0000BB">$class</span><span style="color: #DD0000">? "</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$reflectionClass</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">isInstantiable</span><span style="color: #007700">());<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    
<div class="example-contents"><p>
 Результат выполнения приведённого примера:
</p></div>

    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">Возможно ли создать экземпляр класса C? bool(true)
Возможно ли создать экземпляр класса iface? bool(false)
Возможно ли создать экземпляр класса ifaceImpl? bool(true)
Возможно ли создать экземпляр класса abstractClass? bool(false)
Возможно ли создать экземпляр класса D? bool(true)
Возможно ли создать экземпляр класса T? bool(false)
Возможно ли создать экземпляр класса privateConstructor? bool(false)</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-reflectionclass.isinstantiable-seealso">
  <h3 class="title">Смотрите также</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="reflectionclass.isinstance.php" class="methodname" rel="rdfs-seeAlso">ReflectionClass::isInstance()</a> - Проверяет, принадлежит ли объект классу</span></li>
   </ul>
  </p>
 </div>


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