将变量作为参数的默认值的 PHP 函数

标签 php function variables parameters

默认情况下,PHP 函数使用 $_GET 变量。有时在未设置$_GET 的情况下应调用此函数。在这种情况下,我会将所需的变量定义为参数,例如:actionOne(234)

为了获得抽象代码,我尝试了这样的事情:

function actionOne($id=$_GET["ID"])

导致错误:

Parse error: syntax error, unexpected T_VARIABLE

难道不能用变量来定义默认参数吗?

编辑

actionOne 使用框架 Yii 从 URL 中“直接”调用。通过处理此函数外部的 $_GET 变量,我必须在中央组件上执行此操作(即使它是一个简单、无关紧要的函数),或者我必须更改框架,这是我不喜欢的做。

执行此操作的另一种方法是通过 URL 调用虚拟函数(类似于前置函数)。这个“虚拟”函数处理变量问题并调用 actionOne($id)

最佳答案

不,这是不可能的,正如 Function arguments manual page 中所述:

The default value must be a constant expression, not (for example) a variable, a class member or a function call.

相反,您可以简单地将 null 作为默认值传递并在您的函数中更新它...

function actionOne($id=null) {
    $id = isset($id) ? $id : $_GET['ID'];
    ....
}

...或者(更好),当您没有要传入的特定 ID 时,只需提供 $_GET['ID'] 作为参数值。(即:在函数外部处理。)

关于将变量作为参数的默认值的 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5859376/

相关文章:

php - 搜索 txt 文件并打印或回显结果的搜索脚本

php - 为什么我的 SQL 脚本停止了?

ruby - 有人可以解释为什么这个用于查找字谜的 ruby 代码有效吗?

javascript - 在变量声明中使用条件

variables - 将媒体查询保存在变量中

php - 是否可以使用 PHP 从 MS office 文件和/或 PDF 中提取元信息?

php - 从数据透视表中检索数据

java - 如何编写 Web 应用程序 p2p 网络?

javascript - jquery中的函数序列

java - Android:计算并输出到textview