通过使用以下类:class SafeGuardInput{ public $form; public function __construct($form) { $this->form=$form; $trimmed=trim($form); $specialchar=htmlspecialchars($trimmed); $finaloutput=stripslashes($specialchar); echo $finaloutput; } public function __destruct() { unset($finaloutput); }}并通过以下代码调用该函数,它工作正常。 <?php require('source/class.php'); $target="<script></script><br/>"; $forminput=new SafeGuardInput($target); ?>但是如果在 SafeGuardInput 类中替换echo $finaloutput; 返回$finaloutput;然后echo $forminput; 在 index.php 页面上。这是行不通的。请提供解决方案。
1 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
你不能从构造函数返回任何东西。关键字new总是使新创建的对象被分配给语句左侧的变量。所以你使用的变量已经被采用。一旦记住这一点,您很快就会意识到没有地方可以放置从构造函数返回的任何其他内容!
一种有效的方法是编写一个函数,该函数将在请求时输出数据:
class SafeGuardInput{
public $form;
public function __construct($form)
{
$this->form=$form;
}
public function getFinalOutput()
{
$trimmed = trim($this->form);
$specialchar = htmlspecialchars($trimmed);
$finaloutput = stripslashes($specialchar);
return $finaloutput;
}
}
然后你可以像这样以正常的方式调用它:
$obj = new SafeGuardInput($target);
echo $obj->getFinalOutput();
- 1 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消