你有,
$form = new Gregwar\Formidable\Form('forms/example.html');
$form->handle(function() {
echo "Form OK!";
}, function($errors) {
echo "Errors: <br/>";
foreach ($errors as $error) {
echo "$error<br />";
}
});
echo $form;
我的问题是,这是怎么做到的? 你如何回应$ form对象..
例如,如果我有
class Something
{
public $somevariable = 'London';
public function __construct()
{
$this->foo();
}
public function foo(){
//Do Something
}
}
$myObj = new Something();
echo $myObj;
上面的代码给了我一个错误。 我可以做些什么来回显$ myObj而不会出现错误,这样我就能在屏幕上显示一些内容?
我们都知道我们可以做点什么,
echo $myObj->somevariable;
没有错误..我该怎么办
echo $myObj;
没有在Formidable库中完成错误。
答案 0 :(得分:2)
班上的法术方法__toString()
。当您的对象被视为字符串(即与echo一起使用时)时,这允许您的类在该方法中执行代码。该方法必须返回一个字符串,否则会引发错误。
您将在链接的库中注意到,他们在表单类中有一个。
/**
* Convert to HTML
*/
public function __toString()
{
return $this->getHtml();
}
答案 1 :(得分:0)
您可以为您的班级添加__tostring()
魔法功能
class Something
{
public $somevariable = 'London';
public function __construct()
{
$this->foo();
}
public function foo(){
//Do Something
}
public function __tostring(){
return $this->somevariable;
}
}
致电echo $myObj
将打印伦敦