我可以在Codeigniter中的函数内创建一个函数吗?

时间:2013-10-06 11:07:14

标签: codeigniter

如果我可以创建一个函数,那么如何从同一控制器中的另一个函数调用它, 我创建了一个函数,它从类似于,cc,bcc,主题等的表单中获取数据。它们是表单的一部分,另一种形式从我获取附件的函数中获取附件。我想调用一个获取其他详细信息的功能,以便我可以发送电子邮件。

function emaildata()

{
  //这里它提取主题消息等详细信息

   function Sendmail($attachments)
      {
          //send your mail

       }

}

function getattachments()   {

//在此处获取附件

的sendmail($附件);

}

2 个答案:

答案 0 :(得分:0)

您可以从同一个控制器调用功能!作为同一类。

但是尝试使其成为非公共功能,因此无法从网站访问它(例如:在方法名称的开头使用_ {underscore})

参考此处:http://ellislab.com/codeigniter/user-guide/general/controllers.html#private

答案 1 :(得分:0)

您可以像这样定义私有控制器函数(私有函数名称必须以下划线开头):

private function _get_details()
{
  // some code
}

无法通过网址访问它,但您可以像这样调用它:

function send_mail()
{
   //do something
   $this->_get_details();
   // and we called the other method here!
}

您可以像这样重构代码:

public function emaildata()
{
   //here it fetches details like subject message
   $emaildata->subject = "..";
   //get attachments
   $attachments = $this->_getattachments();
   $this->_sendmail($emaildata,$attachments);
}

private function _getattachments() {
   //get attachments here
}

private function _sendmail($emaildata,$attachments)
{
   //send your mail
}