我有这段代码:
scores[j]
问题是,我在div { z-index: 500;}
ul { z-index: 1000;}
文件中有36个不同的电子邮件模板。每个模板有3个不同的变量:require_once ($_SERVER["DOCUMENT_ROOT"] . '/config.php');
require_once ($_SERVER["DOCUMENT_ROOT"] . '/lib/phpmailer/PHPMailerAutoload.php');
require_once ($_SERVER['DOCUMENT_ROOT'] . '/assets/messaging/email-template.php'); // This is where the templates stored
class Email {
public function sendEmail ($send_to_email, $sent_to_name, $template_name) {
// this variables stored in config.php
global $mandrill_host;
global $mandrill_port;
global $mandrill_username;
global $mandrill_password;
global $mandrill_from;
global $mandrill_from_name;
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->Host = $mandrill_host;
$mail->Port = $mandrill_port;
$mail->SMTPAuth = true;
$mail->Username = $mandrill_username;
$mail->Password = $mandrill_password;
$mail->SMTPSecure = 'tls';
$mail->From = $mandrill_from;
$mail->FromName = $mandrill_from_name;
$mail->AddAddress($send_to_email, $sent_to_name);
$mail->IsHTML(true);
// I will have CASE here to select $subject, $body and $body_txt
// from /assets/messaging/email-template.php
// based on $template_name parameter
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AltBody = $body_txt;
if(!$mail->Send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}
}
}
我是否必须将所有这些变量声明为全局变量?还是有另一种更好的方法来在PHP类之外使用变量?
谢谢你,我非常感谢你的回答
答案 0 :(得分:2)
将变量置于全局状态永远不是一个好主意。它可以使测试和调试成为一场噩梦。我建议您创建一个Config()
类并将变量放在那里。此类可以使用getConfig($itemName)
方法返回您请求的变量的值。
答案 1 :(得分:1)
你必须远离全球,这是邪恶的! :)
首先,您可以将所有global $mandrill_*;
放入属性文件中,然后使用parse_ini_file加载/读取它们。
另外,我建议您将所有模板放在不同的 xml / xsd 或 json 文件中,并创建 properties / ini 文件,其中你会把他们的道路......