当前位置: 首页 > 工具软件 > Fat-Free > 使用案例 >

php fatfreeframework,php – Fat-Free-Framework全局变量和函数

韦知
2023-12-01

可以使用静态调用$f3 = Base :: instance()在代码中的任何位置检索在index.php($f3 = require …)的最开始声明的F3实例变量.

无论如何,为方便起见,在路由时,此F3实例以及路由参数将传递给路由处理程序.因此,不要将路由处理程序定义为:

function display() {

$f3=Base::instance();

echo 'I cannot object to an object' . $f3->get('PARAMS.page');

};

你可以把它定义为:

function display($f3) {

echo 'I cannot object to an object' . $f3->get('PARAMS.page');

};

甚至更好:

function display($f3,$params) {

echo 'I cannot object to an object' . $params['page'];

};

这3个功能完全相同,所以你应该选择你最了解的功能.但是你应该记住$f3和$params只在路由时传递,这意味着3个函数:路由处理程序,beforeRoute()钩子和afterRoute()钩子.在代码中的任何其他位置(包括类构造函数内),您应该调用Base :: instance()来检索F3实例.

PS:你的问题是“为什么我必须将$f3类传递给函数?”,我建议你重命名它的标题以反映它.

更新:从版本3.2.1开始,F3实例也传递给路由处理程序类的构造函数:

class myClass {

function display($f3,$params) {

echo 'I cannot object to an object' . $params['page'];

}

function __construct($f3) {

//do something with $f3

}

}

 类似资料: