Загрузка класса в функцию? - PullRequest
0 голосов
/ 30 марта 2010

Я сейчас работаю над сценарием, и у меня следующая ситуация.

function somnicefunction()
{
    require 'someexternalclass.php';
    $somevar = new SomeExternalClass();
}

По какой-то причине вышеуказанное нарушает функцию. Я не уверен почему, я не видел много документации на php.net по этому поводу, плюс Google не дал никаких реальных результатов У кого-нибудь есть идеи?

Ответы [ 3 ]

2 голосов
/ 30 марта 2010

Если вы вызываете функцию более одного раза, вы можете столкнуться с ошибкой при попытке включить один и тот же файл.

Попробуйте использовать require_once(). Кроме этого, в вашем примере нет ничего «незаконного».

1 голос
/ 30 марта 2010

Ваш код абсолютно действителен. Я проверил его на localhost, и он работает просто отлично. Я использовал следующий кусок кода:

function.php

function loadClass()
{
    include_once "include.php";
    new SomeExternalClass();
}

loadClass();

include.php

class SomeExternalClass {
    public function __construct( ) {
        echo "loads...";
    }
}

Вы уверены, что там нет опечаток? Если вы не получаете никакой ошибки, это может означать, что вы нигде не использовали эту функцию.

0 голосов
/ 30 марта 2010

Попробуйте сначала объявить объект, а затем передать его в качестве параметра функции:

require 'someexternalclass.php';
$somevar = new SomeExternalClass();
function somnicefunction(SomeExternalClass $somevar)
{
    // Do function stuff
}
...