从php类中读取其他文件的常量/变量

时间:2015-04-12 18:20:09

标签: php class oop

我对php oop相当新,有些概念对我来说还是新的。

Asumming我有一个配置文件(config.php),包括:

<?php

$siteName  = "John's Site";
$siteEmail = "john@johnnysample.com"
$replyTo   = "support@johnnysample.com"

我有一个简单的类(SendMail.php),它包含:

class SendMail
{

    public function sendRegistrationMail($toAddress)
    {
        mail($toAddress, $subject, $email, "From: Site Name <sample@example.com>");

    }

}

我的user.php文件包含:

<?php
include_once ('config.php');
include_once ('SendMail.php);

//Initialize class
$sendMail = new SendMail();

我问的是,我是否能以某种方式阅读/包含config.php SendMail类,以便我可以简单地执行此操作:

$sendMail->sendRegistrationMail("registered@useraddress.com");

发送电子邮件时无需传递“发件人:”地址 并且无需硬编码"From: Site Name <sample@example.com>" 正如我所做的那样。

希望我很清楚。 如果有人能提供帮助那将是非常棒的。 谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用类变量来指定可能的数据列表。 或者您可以创建包含配置文件的方法。 或者,您可以以字符串形式向方法添加第二个参数。

答案 1 :(得分:0)

如果您的配置文件是普通的可运行PHP,您可以像这样引用SendMail类中的全局变量:

require_once dirname(__FILE__) . '/config.php';

class SendMail
{
    public function sendRegistrationMail($toAddress)
    {
        global $siteName, $siteEmail, replyTo;
        mail($toAddress, $subject, $email, "From: {$siteName} <{$replyTo}>");
    }

}

由于配置中的变量是PHP,并且它们是在全局范围内定义的,因此包括该文件将使它们在此处可访问。您只需要在函数中指定您引用的变量是全局范围的变量,而不是全局关键字所做的新局部变量。

相关问题