The*_*ndr 32 php variables parameters function
默认情况下,PHP函数使用$_GET变量.有时应在$_GET未设置的情况下调用此函数.在这种情况下,我将所需的变量定义为参数,如:actionOne(234)
为了得到一个抽象代码,我试过这样的事情:
function actionOne($id=$_GET["ID"])
Run Code Online (Sandbox Code Playgroud)
这会导致错误:
解析错误:语法错误,意外T_VARIABLE
是否无法通过使用变量来定义默认参数?
编辑
在actionOne从一个URL使用该框架被称为"直接" 的Yii.通过处理$_GET此函数之外的变量,我必须在一个中心组件上执行此操作(即使它是一个简单,无关紧要的函数),或者我必须更改框架,我不喜欢这样做.
另一种方法可以是虚拟函数(类似于预函数),由URL调用.这个"虚拟"函数处理变量问题并调用actionOne($id).
Joh*_*ker 52
不,这是不可能的,如函数参数手册页中所述:
默认值必须是常量表达式,而不是(例如)变量,类成员或函数调用.
相反,你可以简单地传入null作为默认值,并在你的函数中更新它...
function actionOne($id=null) {
$id = isset($id) ? $id : $_GET['ID'];
....
}
Run Code Online (Sandbox Code Playgroud)
...或者(更好的是),当您没有要传入的特定ID时,只需提供$ _GET ['ID']作为参数值.(即:在函数外处理它.)