У вас есть ошибка в вашем вопросе. Это не работает в классе:
class foo
{
var $mysqli = new mysqli( 'host', 'name', 'pass', 'directory' );
}
Попробуйте Демо , чтобы увидеть, что здесь не работает.
Так что может быть одна (!) Причина написать
class foo
{
var $mysqli;
public function __construct()
{
$this->mysqli = new mysqli( 'host', 'name', 'pass', 'directory' );
}
}
потому что альтернативы ему нет (естественно, между двумя альтернативами, которые вы предложили только в своем вопросе. Это ужасная плохая практика - делать это без деликатного дизайна, основанного на внедрении зависимостей и других абстракциях проектирования высокого уровня - или более точно: это делает mysqli зависимостью foo - включая конфигурацию базы данных).
Рядом с этим, пожалуйста, не используйте var
, используйте private
, protected
или public
вместо.