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

spl_autoload_call

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

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

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

function.spl-autoload-call.php

spl_autoload_call

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

spl_autoload_callОбидете ги сите регистрирани __autoload() функции за вчитување на бараната класа

= NULL

spl_autoload_call(string $class): void

Оваа функција може да се користи за рачно пребарување на класа, интерфејс, трејт или еnumeration користејќи ги регистрираните __autoload функции.

Параметри

class

Името на класата што се пребарува.

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

Не се враќа вредност.

Белешки од корисници 2 забелешки

Мелнoфил
пред 4 години
A complete example with namespaces:

fruits/pinapple.php

<?php
namespace Fruits;
echo "pinapple\n";
class Pinapple { }
?>

fruits/pinapple.php

<?php
namespace Vegetables;
use Fruits\Pinapple;
echo "carrot\n";
class Carrot { }
new Pinapple(); // Let's call autoload here
?>

index.php

<?php
spl_autoload_register(function($class_name) {
    @include_once(__DIR__ . '/' . strtolower(str_replace('\\', '/', $class_name)) . '.php');
});
new Vegetables\Carrot();
?>

Result:

carrot
pinapple

index2.php

<?php
spl_autoload_register(function($class_name) {
    @include_once(__DIR__ . '/' . strtolower(str_replace('\\', '/', $class_name)) . '.php');
});
spl_autoload_call('Fruits\\Pinapple'); // Reverse the load order
spl_autoload_call('Fruits\\Pinapple'); // Multiple call is safe with include_once
new Vegetables\Carrot();
?>

Result:

pinapple
carrot
[email protected]
пред 15 години
It should be noted, that calling spl_autoload_call on a child class, and then on its parent class, throws a fatal error.

This happens because autoloading the child class also loads the class it extends. And since spl_autoload_call forcibly calls the registered autoload function(s), not taking into account whether the class exists, a fatal error is thrown:

File: child.class.php

<?php
class Child extends Parent () {
    public function __construct () {
        parent::__construct();
    }
}
?>

File: parent.class.php

<?php
class Parent () {
    public function __construct () {

    }
}
?>

File: autoload.php

<?php

/*    works fine    */
    spl_autoload_call('Child');

/*    throws: Fatal error: Cannot redeclare class Parent in /parent.class.php on line 2    */
    spl_autoload_call('Parent');

?>
На оваа страница

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

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

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

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

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