在函数内部,我想返回一个超级全局变量.它显示未定义.但是当我在这个超级全局变量之前使用'@'时,它就完成了.我想知道'@'的实际用法.
下面是我的代码
public function getSession(){
return $_SESSION['login'];
}
Run Code Online (Sandbox Code Playgroud)
在PHP中使用有一些很好的用例@.
一个很好的例子是,如果你正在编写面向对象的代码,并且你想要一个干净的对象api,它会在出现问题时抛出异常.你正在设计你的类,你的对象file_get_contents在那里执行一个调用.为了维护一个漂亮的,自包含的对象api,你会想要在出现问题时抛出异常.
@file_get_contents(...)
Run Code Online (Sandbox Code Playgroud)
在@那里添加前缀允许您禁止警告并确保此对象的用户获得异常.相反,请检查false然后抛出异常.
你为什么要这样做?因为php是一种混合功能,在相互比较时没有相似之处或标准.
有了你的具体例子,这与@你无关isset($_SESSION['login']).
你正在以错误的方式看待这个问题.
您永远不应该从类中开始访问PHP超级全局.相反,在代码的引导阶段创建实例时,应将它们用作参数:
$request = new Request(
$_POST,
$_GET, new Session($_SESSION)
);
Run Code Online (Sandbox Code Playgroud)
有点像这样.
然后将此$request实例传递给类,该类正在处理您的用户输入.这有两个主要好处:
| 归档时间: |
|
| 查看次数: |
230 次 |
| 最近记录: |