【发布时间】:2017-11-19 05:53:32
【问题描述】:
我正在以面向对象的方式练习编码;尝试将一些常用的脚本用于表单处理并将它们转换为函数。这是我的代码。
class FormHandler{
// Secure simple inputs
public function secure($var){
$var = stripslashes($var);
$var = strip_tags($var);
$var = htmlentities($var);
return $var;
}
public function getAll(){
foreach($_POST as $key => $value){
${$key} = secure($_POST[$key]);
}
$didGetAll =TRUE;
}
public function echoResults(){
if($didGetAll === TRUE){
echo "Form Contents<br>";
foreach($_POST as $key => $value){
echo $key." => ".${$key}."<br>";
}
}else{
echo 'do getAll() fuction first'."<br>";
}
}
}
当我像这样运行函数时:
include './formhandling.php';
$form = new FormHandler;
$form -> getAll();
$form -> echoResults();
即使 $didGetAll var 应该 = true,它也会返回“首先执行 getAll() 函数”消息。
我认为这是因为变量值没有在函数之间传递?
我尝试通过将 $didGetAll 设为全局并返回 $didGetAll 来测试这一点。但它仍然返回相同的结果。
有人可以建议我做错了什么吗?
【问题讨论】: