Вызов функции в другом классе

У меня есть класс, который называется connection.php, который имеет все вещи, связанные с подключением к моей базе данных, он также имеет следующую функцию:

function connect() {
$pdo = new PDO('mysql:host='.$host.';dbname='.$db.'', $user, $pw);
}

Когда я пытаюсь вызвать эту функцию в другом классе в следующем примере:

require('connection.php');
try {
$connect();

} catch (PDOException $e) {
die("Error, could not connect.");
}

Это дает мне следующую ошибку:

Неустранимая ошибка: имя функции должно быть строкой в ​​/home/[redacted]/public_html/[redacted]/authenticate.php в строке 4

Что я делаю неправильно?

2

Решение

Просто чтобы дополнить то, что Аман сказал здесь … Вы сказали, что у вас есть class которая содержит функцию connect() но я не вижу ни определения класса, ни каких-либо указаний на то, что вы создаете экземпляр нового класса.

Так скажем, это действительно в классе

class database {
function connect() {
$pdo = new PDO('mysql:host='.$host.';dbname='.$db.'', $user, $pw);
}
}

Вам нужно создать экземпляр этого класса сейчас, чтобы использовать его. Итак, мы делаем следующее

$db = new database();
try {
$db->connect();
} catch (PDOException $e) {
die("Error, could not connect.");
}
2

Другие решения

пытаться

require('connection.php');
try {
connect();

} catch (PDOException $e) {
die("Error, could not connect.");
}

если вы напишите $ connect (); он проверит переменную $ connect, которая не инициализируется, поэтому вы получаете сообщение об ошибке

если тебе так нравится

require('connection.php');
$a = 'connect';
try {

$a();

} catch (PDOException $e) {
die("Error, could not connect.");
}

это будет работать
Потому что вместо переменной $ будет помещено соединение, а затем оно будет искать функцию connect ();
Я надеюсь, что это поможет вам лучше понять

8

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector