当前位置: 首页 > 面试题库 >

PHP中全局变量和函数参数之间的优缺点?

鱼恩
2023-03-14
问题内容

抱歉,我是一个初学者,我无法确定这是一个多么好的问题,也许对你们中的某些人来说听起来很明显。

如果 我们 下面 使用 的这两个相同,哪个更好?

function doSomething ($var1,$var2,..){
    ...
}

要么

function doSomething (){
    global $var1,$var2,..;
    ...
}

通过使用,我的意思是我知道,在第二种情况下,我们还可以更改全局变量的值。但是如果我们不需要这样做,那是编写此函数的更好方法吗?传递变量比在函数中声明全局变量占用的内存少吗?


问题答案:

内存使用情况很少。更重要的是,代码易于遵循且不会产生意外的结果。从这个角度来看,添加全局变量是一个非常糟糕的想法,IMO。

如果您担心内存使用情况,那么要做的是

function doSomething (&$var1, &$var2,..) {
   ...
}

这将通过引用传递变量,并且不会在内存中创建它们的新副本。如果在函数执行期间修改它们,则这些修改将在执行返回给调用者时反映出来。

但是,请注意,出于内存原因,即使这样做也是非常不寻常的。使用按引用的通常原因是我上面列出的原因(为调用者修改它们)。走的路几乎总是很简单

function doSomething ($var1, $var2) {
    ...
}


 类似资料:
  • 问题内容: 该文件说: Swift编译器会自动将C和Objective-C源文件中定义的全局常量作为Swift全局常量导入。 但这并没有说相反的话。我需要定义一个全局swift常数,并且能够像全局c常数一样客观地看到它。如快速定义: 并在物镜c端使用它,例如 我该怎么办?我已经导入了迅速自动生成的标题,例如: 在Xcode中,如果我使用它,它将带我到swift代码中的正确位置,但是在编译时,我得到

  • 本文向大家介绍局部变量和全局变量之间的差异,包括了局部变量和全局变量之间的差异的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解局部变量和全局变量之间的区别。 局部变量 通常在函数内部声明它。 如果未初始化,则将垃圾值存储在其中。 在函数开始执行时创建。 功能终止后,它将丢失。 由于可以通过单个功能访问局部变量/数据,因此无法进行数据共享。 需要将参数传递给局部变量,以便它们可以访问函

  • 问题内容: 我知道我应该避免由于这样的混乱而首先使用全局变量,但是如果我要使用它们,以下是使用它们的有效方法吗?(我正在尝试调用在单独函数中创建的变量的全局副本。) 第二个函数使用的是否具有与使用和修改的的全局副本相同的值?定义后调用函数时,顺序重要吗? 问题答案: 如果你只想访问全局变量,则只需使用其名称即可。但是,要更改其值,你需要使用global关键字。 例如 这会将全局变量的值更改为55。

  • 我知道由于这样的混淆,我应该首先避免使用全局变量,但是如果我要使用它们,以下是使用它们的有效方法吗?(我正在尝试调用在单独的函数中创建的变量的全局副本。) 第二个函数使用的是否与使用和修改的的全局副本具有相同的值?定义后调用函数时,顺序重要吗?

  • 预定义的全局变量和函数 Javascript 预定义了很多全局变量和函数,应当避免把它们用做变量名和函数名。如果用它们创建变量或函数,就会得到一个错误( 如果为只读 )或重定义了已经存在的变量或函数。不应该这样做,除非绝对明确自己在做什么。 arguments Array Boolean Date decodeURI decodeURIComponent encodeURI encodeURICo

  • 问题内容: 通过在两者之间使用mysql_query和mysql_fetch_array命令调用下面的函数,连接和关闭数据库是否有任何问题 目前,我收到一个错误消息,说L1的$ connection必须是一种资源,但它是BOOL。如果我在此处给出一条死亡声明,则会触发同样的情况。我不知道怎么了。请找出所有可能的错误。我不得不从编码中休假,过了一会儿我又回来了。 感谢和问候 问题答案: 在 分配变量