在 PHP 中编写速记的好方法很少。
不太常见但最短的例子:
!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];
}
我在这里做错了什么?如果第一个也是最短的示例在函数之外完美地工作,那么为什么它不能与 return 一起工作?
是否有可能在 return 中使用速记?