有几种简洁的方式可以在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];
}
我在这里做错了什么?如果最简单的第一个例子在函数外面无需问题地运行,那么为什么使用返回语句时它不能工作呢?
有没有可能在返回语句中使用速记方式?
if
语句来避免未来的麻烦,让自己不必解密最初想要写的是什么。 - zzzzBov$search_order = (!isset( $search_order ) ? 'ASC' : NULL);
- user1646111!isset( $search_order ) && $search_order = 'ASC';
的问题是什么?那使用简写的意义何在? - Ilia