There are few nice ways to write shorthands in 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;
But how do we use examples above with functions and return, example:
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
}
At the same time, if I state the following, instead of isset($data[0]) && return $data[0];
then everything works as expected:
if (isset($data[0]) ) {
return $data[0];
}
What am I doing wrong here? If the very first and shortest example works outside of function flawlessly, why then it doesn't work with return?
Is there a possibility to use shorthands with return?
With your current syntax, what do you expect your function to return when $data[0]
is not set? Surely you don't expect your function to not return anything, depending upon a condition.
The only alternative I see is the ternary operator, where you return something other than $data[0]
when it is not set:
return isset($data[0]) ? $data[0] : null;