!isset( $search_order ) && $search_order = 'ASC';
更常见,但更长一些:
!isset( $search_order ) ? $search_order = 'ASC' : $search_order = NULL;
我们甚至可以将上面的示例结合到一个惊人的速记:
!isset( $_POST['unique_id'] ) && preg_match( '/^[a-zA-Z0-9]{8}$/', $_POST['unique_id'] ) ? $post_unique_id = $_POST['unique_id'] : $post_unique_id = NULL;
function filter_gender_request($data) {
preg_match('/(fe)?male/i', $data, $data);
isset($data[0]) && return $data[0]; // It doesn't work here with return
}
同时,如果我说明以下内容,而不是isset($data[0]) && return $data[0];
if (isset($data[0]) ) {
return $data[0];
}
,那么一切都按预期运行:
$data[0]
我在这里做错了什么?如果第一个和最短的示例在功能之外无瑕,那么为什么它不适用于返回呢? 有可能使用带有回报的速记?
在您的当前语法中,您希望在未设置
我看到的唯一替代方案是the the the oterator
,当未设置时,您会返回其他东西:
return isset($data[0]) ? $data[0] : null;
使用php 7 null cocce(??)操作员
return $data[0] ?? null;
代码的问题是,您正在尝试执行
return
$message = is_error() ? get_error() : 'No Errors';
$message
return
不能分配给变量。出于这个原因,其他用户发布的内容是您情况的更好选择。
我不知道你在做什么,但这应该有效:
return ( isset($data[0]) ? $data[0] : false);
在这里回答的内容,一旦您离开它,回来了,或者更糟的是将来的另一个开发人员,那么速记就很难阅读。
想象一下,即使是一个小的500行脚本文件,您使用40行的速记Elseif,您可以尝试添加或更改代码吗? 特别是当主题或内容不是您熟悉的事物时,它会令人头疼或增加加法。
这更易于管理,并且无关紧要,它只是代码:
只是说
我喜欢这样的perl,可让您扭转IF语句的顺序,这使得可读的单线。 像OP一样,我希望找到可以让我做的东西function deleteUser($user) {
return if (!$this->isAuthorized());
$this->entityManager...
}
tanth
function deleteUser($user) {
if (!$this->isAuthorized()) {
return;
}
...
}
我认为,如果“返回”是第一个单词,则更容易看到方法的退出点。 只是一个偏好。 无论如何,PHP不支持它。