有没有什么办法来限制php文件中的非类函数的范围,并使它们成为它所在的php文件中唯一可访问的?就像C使用static关键字和函数一样可以实现这一点。在PHP静态似乎只适用于类。我想隐藏只能由文件中的函数访问的帮助函数。谢谢。PHP:将函数的范围限制在当前文件中
4
A
回答
1
我可以找出最接近的解决方案是这样的:
<?php
call_user_func(function() {
//functions you don't want to expose
$sfunc = function() {
echo 'sfunc' . PHP_EOL;
};
//functions you want to expose
global $func;
$func = function() use ($sfunc) {
$sfunc();
echo 'func' . PHP_EOL;
};
});
$func();
?>
但是你要调用的功能,如$func()
而不是func()
。问题是,当您将$func
重新分配给其他值时,它会中断。
$func = 'some other value';
$func(); //fails
当然,你可以创建包装函数:
function func() {
$func();
}
通过这种方式,你可以这样调用它func()
,但重新分配的问题仍然存在:
$func = 'some other value';
func(); //fails
+0
感谢您的答案,这是一个有趣的实施方式。但是,就像你说的那样,它会打破并且可以复杂化。我希望在php中构建一些东西,但我想这是不可能的,开发人员也没有发现它很重要。 – roverred
+0
是的,我更喜欢OOP的方式来隐藏PHP中的东西。 –
相关问题
- 1. 我可以将胡须限制在当前范围吗?
- 2. 将当前范围的jQuery/plainJS变量/函数传递给从当前范围调用的匿名函数
- 3. 限制范围
- 4. 限制范围
- 5. 的IntelliJ限制搜索的范围/找到当前方法
- 6. PHP函数的范围
- 7. 将夹角限制在任意范围
- 8. 将画笔限制在离散范围
- 9. 如何将当前范围传递给角度控制器函数?
- 10. 范围,使用当前模块中的函数
- 11. 包含文件中的PHP函数范围
- 12. 限制'快速打开范围到当前在Xcode中打开的项目?
- 13. 如何限制输入文本在angular2中的数字范围?
- 14. 如何将当前嵌套窗体的范围限制为第一项
- 15. 在JSP中限制模型的范围
- 16. php strlen范围函数
- 17. PHP函数范围失败
- 18. PHP lambda函数和范围
- 19. PHP函数变量范围
- 20. 通过IP范围限制访问(PHP)
- 21. Isabelle的范围限制/域名限制
- 22. php函数中的变量范围
- 23. 如何限制范围的文本
- 24. 将文本框限制为VB中的一个字符范围
- 25. MySQL的限制范围
- 26. 范围限制的难题
- 27. 限制scipy.signal.correlate的范围
- 28. 限制NamedPipeServerStream的范围
- 29. 将xpages中的当前页保存在范围变量中?
- 30. 如何限制OAuth'scope'参数的允许权限(限制范围)
只写在该文件中的功能? –
这是不可能的 – BigToach