【问题标题】:Php Error - Unexpected require_once expecting functionPhp 错误 - 意外的 require_once 期望函数
【发布时间】:2014-05-18 20:00:31
【问题描述】:

我目前正在尝试获取 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),在 /myfiledirectory/example.php 的第 4

非常感谢任何帮助!我不太确定出了什么问题。

正在运行的 php 文件是:

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

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

require_once 的包装也有所​​不同...这没有什么不同,不是吗?如果是这样,在生产环境中使用哪个更可取?

【问题讨论】:

  • require_once 'medoo.min.php'; require_once('signin.php'); 发现差异
  • 您说您的代码来自signin.php 文件,但您粘贴的错误说它在example.php 中。如果您没有更改错误文本,example.php 的第 4 行是什么?
  • 顺便说一句,您可以使用 require_once 带或不带括号。
  • 你说the class,但我在这里看不到任何课程
  • @myesain 我混淆了文件系统目录,它实际上指向了正确的文件。

标签: php php-include medoo


【解决方案1】:

你不能在没有函数的类中拥有require_once。 这是主要原因。

尝试将require_once 放入construct

确切地说:

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

会抛出错误。

【讨论】:

    【解决方案2】:

    这一行:

    require_once('signin.php');
    

    在类内但在方法外,这在 PHP 中是不可能的。

    【讨论】:

    • 以防万一以上内容不清楚 - require_once 可以在方法/函数/构造函数中使用。您不能使用 require_once 来包含方法/函数本身
    【解决方案3】:

    我可能错了,但不需要_once 'medoo.min.php';需要括号? 像这样: require_once ('medoo.min.php');

    【讨论】:

    • 不,一般来说,将括号用于像require_once 这样的语言结构被认为是不好的做法,即使它会起作用。
    【解决方案4】:

    试试这个,它可能会起作用

    <?
        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;
        }
    ?>
    

    我注意到的另一个错误是您使用小写 M 实例化了 Medoo 对象(换句话说,您调用了 Medoo 类),但情况并非如此。另外记得传递正确的数据库和服务器值。

    如果您仍然面临这方面的挑战,请参阅this 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2015-05-26
      • 1970-01-01
      • 2013-11-17
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 2021-06-26
      • 1970-01-01
      相关资源
      最近更新 更多