【发布时间】:2014-03-11 11:41:05
【问题描述】:
我在以这种方式编码的表单上实施了控制检查:
public function checkCittaResidenza() {
if (is_string($this->citta_residenza) && (strlen($this->citta_residenza) <= 45 || strlen($this->citta_residenza == 0))) {
$this->corretti['citta_residenza'] = htmlentities($this->citta_residenza, ENT_QUOTES);
} else {
$this->ErroriTrack('citta_residenza');
}
}
在这个版本中,它只是检查它是否是一个字符串并检查它的长度是否应该小于 45 个字符。如果为正,则将字符串放入数组 corretti() 中,否则在检查类的抽象类父级中初始化上面指定的错误消息。
我想做的是:
1) 检查字符串是否不为空。 2)如果它不为空,请进行检查(这可能比此处显示的简单检查更具体,但我对此没有问题),如果正确则将其放入 corretti() 中,如果不正确则初始化错误,正如代码现在所说的那样。
3)如果字符串为空,程序应该跳过检查,直接将空值写入数组corretti(),因为表单被想象为随着时间的推移在不同的步骤中完成,所以总是会发生没有填满。
我在为最后一个条件编写 if 循环时遇到问题,我尝试和想象的每个循环都将空条件作为初始化错误的原因。
谢谢!
【问题讨论】:
-
这样的东西可以吗?
$this->corretti['citta_residenza'] = isset($this->citta_residenza)?$this->citta_residenza:NULL; -
还没有很好地阅读这个问题 - 但请注意:
isset()将检查传递的东西是否确实存在,并且不为空。如果要检查是否存在但允许为 NULL,请使用 property_exists
标签: php if-statement cycle