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 で短縮形を使用する可能性はありますか?