PHP.mk документација

interface_exists

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.interface-exists.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.interface-exists.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
interface_exists

Референца за `function.interface-exists.php` со подобрена типографија и навигација.

function.interface-exists.php

interface_exists

(PHP 5 >= 5.0.2, PHP 7, PHP 8)

interface_existsПроверува дали интерфејсот е дефиниран

= NULL

interface_exists(string $interface, bool $autoload = true): bool

Проверува дали е дефиниран даден интерфејс.

Параметри

interface

Име на интерфејсот

autoload

Дали да autoload ако веќе не е вчитан.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true дали интерфејсот даден од interface е дефинирана, false otherwise.

Примери

Пример #1 interface_exists() example

<?php
// Check the interface exists before trying to use it
if (interface_exists('MyInterface')) {
class
MyClass implements MyInterface
{
// Methods
}
}

?>

Види Исто така

  • get_declared_interfaces() вратената вредност.
  • class_implements() - Враќа интерфејси кои се имплементирани од дадена класа или интерфејс
  • class_exists() - Проверува дали класата е дефинирана
  • enum_exists() - Проверува дали enum е дефиниран

Белешки од корисници 4 белешки

CoR
пред 10 години
Class and Interface share SAME namespace!

class k{}

interface k {}    // Fatal error: Cannot redeclare class k
nils dot rocine на gmail dot com
пред 14 години
A little note on namespaces that may be obvious to some, but was not obvious to me.

Although you can make the below statement when the statement is in the same namespace as the interface/class declaration MyInterface... 
<?php
$foo instanceof MyInterface
?>

Making use of the interface_exists, or class_exists functions, you must enter the full namespaced interface name like so (even if the function call is from the same namespace.)
<?php
interface_exists(__NAMESPACE__ . '\MyInterface', false);
?>
davidm на marketo точка com
21 години пред
As far as I remember interface_exists() was added in 5.0.2 . In 5.0.0 and 5.0.1 class_exists() used to return TRUE when asked for a existing interface. Starting 5.0.2 class_exists() doesn't do that anymore.
maxim на inbox точка ru
пред 13 години
If you want to check for included interface and you already register spl autoloader - it will crash. Becassue autoloader trying to load `string` and he doesnt matter is it class or not.
Iv found several ways :
1 - unregister AL - -> check for Ifaces - -> register Autoloader

2 - $ifaces = array_flip(get_declared_interfaces()); 
 if($ifaces["MyIface"]) // empty // isset .

Interfaces are not bad, you can build correct geomentry of system , with validation by funcs / vars / const .
Also they are good to storage variables <?php
 ROOT::THEMES ; ROOT::LOC ; ?> . Much faster then Define, but you cant put algorithms inside, only complite strings / __file__ / etc.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.