Да это плохая практика; нет это не так.
Скорее всего, вы получите оба ответа, и вот почему:
Если вы используете __autoload
(или эквивалент), звоните:
function someFunc()
{
$n = new UndefinedClassName();
}
эквивалентно:
function someFunc()
{
include('path/to/UndefinedClassName.php');
//may be require_once, include_once, include, or require
//depending on how autoload is written
$n = new UndefinedClassName();
}
Но вы получите лучшую производительность из своего кода, если не будете использовать __autoload
. И чтобы поддерживать ваш код, лучше поместить все ваши includes
в верхнюю часть скрипта, как вы бы сделали для import
операторов на других языках.
include('path/to/UndefinedClassName.php');
...code...
function someFunc()
{
$n = new UndefinedClassName();
}
Я бы предложил последовательность. Если вы последовательно вызываете include
в функциях, у вас не должно быть слишком много проблем, но я бы выбрал импорт в начале файлов или как autoloads
.