非常简单的设置,但我根本就没有得到它......
的functions.php
class functions {
function output_functions() {
function sendMail($to, $subject, $message){
//...code...
}
}
}
myfile.php
include $_SERVER['DOCUMENT_ROOT'] ."some/subfolders/functions.php";
$myFunction = new functions();
$myFunction->output_functions()->sendMail("mail@mail.com","My Subject","My Message");
我收到了错误:
在null
上调用成员函数sendMail()
任何帮助都将受到高度赞赏!
答案 0 :(得分:2)
如果你想按类型(output_functions,input_functions等)对你的函数进行分组,我会为每个函数做一个不同的类。然后,您应该将它们定义为公共或私有。
正如已经说过的那样,嵌套函数不能从外部加入,它们只能在定义它们的函数范围内使用。
答案 1 :(得分:0)
你在哪里找到这样的语法?
class Helper_Output {
static public function sendMail($to, $subject, $message){
//...code...
}
}
//and usage:
Helper_Output::sendMail("mail@mail.com","My Subject","My Message");
答案 2 :(得分:0)
class Methods1 {
public function do1() {
echo __FUNCTION__ . PHP_EOL;
}
public function do2() {
echo __FUNCTION__ . PHP_EOL;
}
}
class Methods2 {
public function do1() {
echo __LINE__ . PHP_EOL;
}
public function do2() {
echo __LINE__ . PHP_EOL;
}
}
class Factory {
public function getMethods1() {
static $cache = new Methods1;
return $cache;
}
public function getMethods2() {
static $cache = new Methods2;
return $cache;
}
}
用法:
$factory = new Factory;
$factory->getMethods1()->do1();
$factory->getMethods1()->do2();
$factory->getMethods2()->do1();
$factory->getMethods2()->do2();