为什么通过例如调用时无效wd(1)(它总是返回'-2')?
$zoom=$user['zoom'];
function wd($hrs){
return $hrs*$zoom-2;
}
但这很好用:
function wd($hrs){
return $hrs*30-2;
}
假设这是一个投射问题,我尝试了各种各样的变体,比如
(int)$hrs * ((int)$zoom)
或
(int)$hrs * (float)$zoom
但没有成功:(
任何帮助都将不胜感激。
(顺便说一下,这个功能是否位于
内是否重要include('header.php')
- 虽然我在标题内外都试过了吗?)
答案 0 :(得分:3)
编辑:您应该将该变量作为参数传递给函数,但如果您绝对需要将变量保持为全局,请执行以下操作。
您需要将全局纳入范围:
$zoom=$user['zoom'];
function wd($hrs){
global $zoom;
return $hrs*$zoom-2;
}
答案 1 :(得分:1)
这不是投射问题 - 因为您正在尝试使用out of scope的变量。
虽然您需要在完整的低位读取PHP文档,但在基本级别,您只能访问在同一函数或方法中定义的变量。 (尽管您可以使用global关键字来访问全局变量。也就是说,全局变量不太理想。)
因此,你可以简单地更新你的函数,也可以将'zoom'作为参数传递,如下所示:
function wd($hrs, $zoom){
return $hrs*$zoom-2;
}
答案 2 :(得分:0)
$zoom=$user['zoom'];
function wd($hrs){
// there is no variable $zoom within the function's visibility scope
// so you will get a "Notice: undefined variable 'zoom'" here.
return $hrs*$zoom-2;
}