【问题标题】:php Fatal error: Cannot redeclare class AppMailCore in /appmail.core.php on line 10php 致命错误:无法在第 10 行的 /appmail.core.php 中重新声明类 AppMailCore
【发布时间】:2011-03-29 13:33:07
【问题描述】:

我在运行脚本时遇到此错误

php 致命错误:无法在第 10 行的 /appmail.core.php 中重新声明类 AppMailCore

我需要创建一个循环,该循环也将使用类文件中的一些变量。 main.php 中的代码如下所示:

$iesc = 1; while($iesc 小于 5) { include('includes/appmail.core.php'); ---

我在上面的代码中使用了“小于”,因为我不知道在预标记中取消转义“

我知道我不能重新定义类,但我不知道如何使类变量在循环中运行。 appmail.core.php 看起来像这样

require_once('appmail.config.php'); require_once('helpers'.DIRECTORY_SEPARATOR.'appmail.rest.php'); 类 AppMailCore { var $AppMailRest; 变量 $api_key; 变量 $url; /** * 初始化 AppMailCore。可选择提供运行时 api 密钥和 url。 */ 功能 AppMailCore($api_key = APPMAIL_API_KEY, $url = APPMAIL_URL) { $this->url = $url; $this->api_key = $api_key; $this->AppMailRest = new AppMailRest($this->url); } /** * 使用 Google App Engine 异步发送电子邮件 * * 参数是相当不言自明的。但是,请注意“发件人”地址必须是注册的电子邮件地址 * 您的 Google App Engine 帐户。 */ 函数发送($to,$from,$subject,$plain,$html){ $api_key = $this->api_key; $status = $this->AppMailRest->post('send', compact('api_key','to','from','subject','plain','html')); 返回$状态; } }

appmail.config.php 看起来像这样

$app1DB = new mysqli("localhost", "root", "", "ast"); $app1RSP = $app1DB->query("SELECT app_id FROM Application WHERE emails_sent fetch_assoc(); $app_id = $app1Object['app_id']; 定义('APPMAIL_API_KEY','JLQ7P5SnTPq7AJvLnUysJmXSeXTrhgaJ'); 定义('APPMAIL_URL', "http://$app_id.appspot.com/"); $app1RSP->免费(); $app1DB->关闭();

基本上我需要在每次循环运行的类中获取变量 APPMAIL_URL/$app_id。

【问题讨论】:

    标签: php while-loop


    【解决方案1】:

    你为什么不在循环之前做include

    另一个提示:使用include_once ?

    第三个提示:如果你需要一个常量,直接包含appmail.config.php,而不是appmail.core.php

    编辑

    基本上我需要变量 APPMAIL_URL/$app_id 在类上 每个循环运行。

    如果它的值应该通过脚本执行而改变(正如我刚刚看到的),那么你不应该将它定义为一个常量。

    【讨论】:

    • @Frosty Z 如果我在循环之前包含 appmail.core.php,我想我会在每个循环中得到相同的 APPMAIL_URL(在 appmail.config.php 中),因为它将是仅从 db 检索一次。我需要在每个循环上获取不同的 APPMAIL_URL。
    • @Michael:那么您的对象定义错误。定义/初始化对象一次,然后在每次迭代时重置 APPMAIL_URL。
    • @Frosty Z 你能详细说明你的答案或提供一些代码吗? .我今天尝试了 100 种方法,但都无法奏效.. 主要是因为我认为我对 OOP 的理解不是很好 :(
    • @Marc B 如何重置 APPMAIL_URL ?这就是我所需要的……根据从数据库中检索到的 $app_id 重置 APPMAIL_URL。我对 OOP 的理解不是很好。
    • 我终于想出了如何解决它..非常感谢您的帮助!
    猜你喜欢
    • 2010-10-17
    • 2014-11-07
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    相关资源
    最近更新 更多