Итог - не создавайте классы, которые содержат только статические функции. Это не OOP, это просто ваш старый процедурный код, маскирующийся под oop
Если вы выполняете функции статически, нет $ this, так как нет объекта.
В итоге вы также сделаете private $db
статической переменной и будете использовать ее как self::$db
.
Тем не менее, я бы порекомендовал сбросить этот шаблон и написать что-то вроде:
class Foobar
{
protected $_connection = null;
public function __construct( DBConnect $db )
{
$this->_connection = $db;
}
public function some_function()
{
$db = $this->_connection;
// Do processing with $db, etc.
}
}
И вы используете этот класс так:
$db = new DBConnection( /* your password , user , host , etc. */);
$stuff = new FooBar( $db );
$stuff->some_function();
$blah = new DifferentClass( $db );
Таким образом, вы разделяете одно и то же соединение со всеми классами, которым оно требуется. И теперь класс FooBar
не отвечает за установление соединения или должен знать детали вашего соединения.