通过使用下面的类。
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页面。它不工作。请提供一个解决方案。
你不能从构造函数中返回任何东西。在 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();