考虑所有这些文件:
vars.php
if($local){
$var = 'var';
$foo = 'foo';
$var1 = 'var1';
$foo1 = 'foo1';
}else{
$var = '';
$foo = '';
$var1 = '';
$foo1 = '';
}
/remote/vars.remote.php is the same as vars.php but different values for variables
cons.php
$local = isset($_SERVER['REMOTE_ADDR']) && ( $_SERVER['REMOTE_ADDR'] === '127.0.0.1') ? 1 : 0;
if ($local){
include_once ('vars.php');
}else{
include_once('/remote/vars.remote.php);
}
define(CONST_OP_1,$var);
define(CONST_MAIL_1,$foo);
define(CONST_OP_2,$var1);
define(CONST_MAIL_2,$foo1);
配置文件
require_once "Mail/Queue.php";
include_once ('cons.php');
$db_options['user'] = CONST_OP_1;
$db_options['pass'] = CONST_OP_2;
$mail_options['port'] = CONST_MAIL_1;
$mail_options['dsn'] = CONST_MAIL_2;
邮件.php
class Sendmail
{
...
function sendc($var){
require_once ('config.php');
$mail_queue = new Mail_Queue( $db_options , $mail_options );
}
...
}
comm.php
foreach($array_mails as $email){
$mail_q = $sendmail->sendc($u_name);
}
有一些我不明白的事情,我无法弄清楚为什么会发生这种情况。当我执行时comm.php
与 和ajax function
我通过并数组$array_mails
但对我来说,出于一个奇怪的原因,在第一个循环中一切都工作得很好,但在 foreach 的第二个循环(及后续)中,似乎数组内部config.php
文件似乎没有被声明,所以它给了我一个
注意:$db_options 和 $mail_options 未定义变量。
我知道如何解决这个问题,但我想了解为什么会发生这种情况。谁能解释一下吗?