我们如何更改此 PHP 函数以使用 PHP 8?
How can we change this PHP function to work with PHP 8?
谁知道我们如何重写以下函数以与 PHP 8 兼容和工作?
function wpsc_have_shipping_quote() {
$has_quote = false;
global $wpsc_cart;
if ( $wpsc_cart->shipping_quote_count > 0 || count( $wpsc_cart->shipping_quotes ) > 0 ) {
$has_quote = true;
}
return $has_quote;
}
安迪。亲切的问候。
在 PHP 8.+ 中,count() 不再接受空值,如果我没记错的话,它从 PHP 7.2 开始就已经发出警告。因此,代码恰恰在这里失败了:
count( $wpsc_cart->shipping_quotes ) > 0
因为在某些情况下 $wpsc_cart->shipping_quotes
可能为空(未设置)。
您可以使用新的PHP 8 空合并来检查值是否为空,如果为空,您可以提供一个空数组[]
。所以更改行:
if ( $wpsc_cart->shipping_quote_count > 0 || count( $wpsc_cart->shipping_quotes ) > 0 ) {
收件人:
if ( $wpsc_cart->shipping_quote_count > 0 || count( $wpsc_cart->shipping_quotes ?? [] ) > 0 ) {
您不必为了查看数组中是否包含任何内容而对数组进行计数。当您使用 ||
时,被比较的值将是 converted to booleans,而 shipping_quotes
将评估为 false
,无论它是空数组还是 null
。
function wpsc_have_shipping_quote() {
global $wpsc_cart;
return $wpsc_cart->shipping_quote_count || $wpsc_cart->shipping_quotes;
}
这应该适用于任何 PHP 版本。
谁知道我们如何重写以下函数以与 PHP 8 兼容和工作?
function wpsc_have_shipping_quote() {
$has_quote = false;
global $wpsc_cart;
if ( $wpsc_cart->shipping_quote_count > 0 || count( $wpsc_cart->shipping_quotes ) > 0 ) {
$has_quote = true;
}
return $has_quote;
}
安迪。亲切的问候。
在 PHP 8.+ 中,count() 不再接受空值,如果我没记错的话,它从 PHP 7.2 开始就已经发出警告。因此,代码恰恰在这里失败了:
count( $wpsc_cart->shipping_quotes ) > 0
因为在某些情况下 $wpsc_cart->shipping_quotes
可能为空(未设置)。
您可以使用新的PHP 8 空合并来检查值是否为空,如果为空,您可以提供一个空数组[]
。所以更改行:
if ( $wpsc_cart->shipping_quote_count > 0 || count( $wpsc_cart->shipping_quotes ) > 0 ) {
收件人:
if ( $wpsc_cart->shipping_quote_count > 0 || count( $wpsc_cart->shipping_quotes ?? [] ) > 0 ) {
您不必为了查看数组中是否包含任何内容而对数组进行计数。当您使用 ||
时,被比较的值将是 converted to booleans,而 shipping_quotes
将评估为 false
,无论它是空数组还是 null
。
function wpsc_have_shipping_quote() {
global $wpsc_cart;
return $wpsc_cart->shipping_quote_count || $wpsc_cart->shipping_quotes;
}
这应该适用于任何 PHP 版本。