gpt4 book ai didi

使用 return 时的 PHP 速记 If/Else

转载 作者:可可西里 更新时间:2023-11-01 12:40:04 26 4
gpt4 key购买 nike

在 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 的简写形式?

最佳答案

使用您当前的语法,当未设置 $data[0] 时,您希望您的函数返回什么?当然,您不希望您的函数返回任何内容,这取决于条件。

我看到的唯一选择是 ternary operator ,在未设置时返回 $data[0] 以外的内容:

return isset($data[0]) ? $data[0] : null; 

关于使用 return 时的 PHP 速记 If/Else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18474559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com