2010-03-30 3 views
0

В настоящее время я работаю над скриптом, и у меня есть следующая ситуация.Загрузка класса в функцию?

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

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

+1

Какое сообщение об ошибке делает это? –

+0

Никаких ошибок. Но все, что следовало за телом скрипта, выполнить не удалось. –

ответ

0

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

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

Это установка wordpress, и я работаю над плагином, поэтому мне нужно будет взломать все уровни, чтобы передать переменную (я полагаю, это вы - идея) –

2

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

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

+0

Я не упомянул, что я использую require_once. –

+0

Ну, ничего, что вы делаете, неправильно в глазах PHP. Без остальной части кода невозможно дать вам решение. –

1

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

function.php

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

loadClass(); 

include.php

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

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

Смежные вопросы