Ошибка Php - неожиданная ожидающая функция require_once

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

вот код моего файла signin.php

<?php
    function loginUserAccount($loginname, $password){
    // Include Medoo (configured)
    require_once 'medoo.min.php';

    // Initialize
    $database = new medoo();

    $email = $database->get('MM_Users', 'Email', [
        'ID' => 1
    ]);
    return $email;
    }
    ?>

И ошибка:

Ошибка разбора: синтаксическая ошибка, неожиданное 'require_once' (T_REQUIRE_ONCE), ожидающая функция (T_FUNCTION) в /myfiledirectory/example.php в строке 4

Любая помощь очень ценится! Я не совсем уверен, что происходит не так.

PHP-файл, который работает:

<?php
require_once('signin.php');
if(!loginUserAccount('bobby@gmail.com', 'AveryRandomPassword')){

    echo 'error';
} else {
    echo $email;
}
?>

Есть также разница в упаковке для require_once... это не имеет значения, не так ли? И если да, то какой из них лучше использовать в производственной среде?

3 ответа

Решение

Вы не можете иметь require_once внутри класса без функции. Это главная причина.

Попробуйте поместить require_once в конструкцию.

если быть точным:

class foo 
{
 require_once('bar.php');
 }

будет ошибка

Эта строка:

require_once('signin.php');

находится внутри класса, но вне метода, что невозможно в PHP.

Я могу ошибаться, но не требует_once 'medoo.min.php'; требуют скобки? вот так: require_once ('medoo.min.php');

Попробуйте это, вероятно, сработает

<?
    require_once 'medoo.min.php';
    use Medoo\Medoo; //If this line raises errors, remove it

    // Initialize DB
    $database = new Medoo(
    // required
    'database_type' => 'mysql',
    'database_name' => 'name',
    'server' => 'localhost',
    'username' => 'your_username',
    'password' => 'your_password',
    );

    $email = $database->get('MM_Users', 'Email', [
        'ID' => 1
    ]);
      return $email;
    }
?>

Еще одна ошибка, которую я заметил, заключается в том, что вы создали экземпляр объекта Medoo (другими словами, вы вызвали класс Medoo), используя строчную букву M, которой не должно быть. Кроме того, не забудьте передать правильные значения базы данных и сервера.

См. Это для получения дополнительной информации, если вы все еще сталкиваетесь с проблемами.

Другие вопросы по тегам