Php:函数在括号中获取变量和在函数中使用$_session[variable]有什么区别?


php: what is the difference between functions getting their variables between brachets and using a $_session[variable] in a function?

我想知道这之间有什么区别$x,$y,$z是声明的变量,函数($x,$y,$z)

$ _SESSION("x"),$ _SESSION [y], $ _SESSION [' z ']声明
和()函数使用$ _SESSION("x"),$ _SESSION [y], $ _SESSION [' z '];

在第一个场景中,这些值由调用该函数的对象提供给该函数。在第二种情况下,函数主动地从会话中寻找变量。两者之间的区别归结为查找值的责任应该发生在哪里。

会话是一个依赖。因此,如果函数依赖于会话,则函数具有内部依赖关系。这限制了函数的通用性。

如果函数接受这些值作为参数,则任何PHP代码都可以使用该函数中的代码。如果函数从会话状态中提取值,那么只有活动的web应用程序可以使用该函数。加上 web应用程序必须记住将值放在函数可以找到的地方(因为它不像函数参数那样通知需要这些值)。

在大多数情况下,首选第一种方法。如果函数执行操作(并可选地返回结果),则让函数执行。让它"做一件事"。为函数提供所需信息的责任属于调用函数的代码。函数本身作为一个完全封装的实体,应该简单地声明它需要什么和期望返回什么。