我正在制作一个表单验证类,它目前的工作方式与此类似.
$validator->setVar($_POST['Username'])
->standardFilter(array('XSS', 'SQL_INJECTION'))
->customRegex()
->replace('This', 'With this')
->getResult();
Run Code Online (Sandbox Code Playgroud)
虽然它在链接时效果很好,但我无法达到以下结果.
$validator->setVar($_POST['Username'])
->isValidEmail()
->isValidPhoneNumber()
->isSet()
->isNull()
->getResult()
Run Code Online (Sandbox Code Playgroud)
例如,脚本返回以下值
->isValidEmail() (true)
->isValidPhoneNumber() (true)
->isSet() (false)
Run Code Online (Sandbox Code Playgroud)
基本上,我将创建一个数组,根据每个函数的结果用true/false填充它,我将在数组中查找特定值(false).如果存在,则无论其他链如何,该类都将返回false.(或者我可以覆盖变量,这里不重要.)
但是,我希望$ validator一旦从函数中获取错误就停止链接.假设它从isSet()收到错误.它不应该执行isNull()和getResult(),因为我们已经有一个失败的检查.
我怎样才能在PHP中实现这一目标?
TL; DR:
var_dump($validator->setVar('Test message')->isInteger()->setTrue());
//false //true
Output: false, because once isInteger() failed, rest of the chain isn't executed.
Run Code Online (Sandbox Code Playgroud)
我怎样才能在PHP中实现这一目标?