PHP'&&';操作员问题或误解
Hy 我正在开发一个基于PHP和CodeIgniter的小网站。我今天遇到了一个非常奇怪的行为。我有以下代码来检查字段是否已填充:PHP'&&';操作员问题或误解,php,codeigniter,boolean,isset,Php,Codeigniter,Boolean,Isset,Hy 我正在开发一个基于PHP和CodeIgniter的小网站。我今天遇到了一个非常奇怪的行为。我有以下代码来检查字段是否已填充: $valid = isset ( $model->{$property} ) && !empty($model->{$property}); error_log ( $valid ); 如果“$model->{property}”存在且不为空,我希望“$valid”为true。不幸的是,我从“error_log()”函数中获得了以下输出
$valid = isset ( $model->{$property} ) && !empty($model->{$property});
error_log ( $valid );
如果“$model->{property}”存在且不为空,我希望“$valid”为true。不幸的是,我从“error_log()”函数中获得了以下输出,而不管属性是否存在、是否有值:
[Sat Oct 11 19:49:43 2014] [error] [client 192.168.2.68] , referer: http://192.168.2.248:8080/
怎么了?是否有其他(更好的)方法来检查属性是否存在并已填充 很抱歉问了一个愚蠢的问题:我错了。我通过AJAX发布的模型实际上不包含预期的字段 我在我的JS代码中发现了这个问题。我尝试使用以下命令发布表单数据:
var formData = $(form).serialize();
$(form + " :input").attr("disabled", true);
$.ajax({
type: 'POST',
url: action,
data: formData,
dataType: "json",
success: postSuccess,
error: postFail
});
I tough$(form).serialize()从表单中提取值,并且可以禁用输入字段。不幸的是没有。我必须在ajax调用之后放置禁用的输入域以正确传递值(.serialize()忽略禁用的字段)
!empty
是isset&&的别名代码>,意味着它已设置,而不是错误。如果您正在测试,则无需手动测试isset
!空的
。