function site_banner_section($args = null) {
if (!$args[\'title\']) {
你从这些台词中得到警告
注意:尝试访问C:\\xampp\\htdocs\\wp-vs-5.3.2\\wp-content\\themes\\personal\\functions中null类型值的数组偏移量。php第4行注意:未定义索引:C:\\xampp\\htdocs\\wp-vs-5.3.2\\wp-content\\themes\\personal\\functions中的subtitle。php在线7
因为$args可能为null,而您仍在尝试将其视为一个数组,并且因为您正在尝试访问可能存在或不存在的属性以检查它们的存在,这可能在其他语言中可用,但在PHP中并不意味着要这样做。您可能需要以下内容:
function site_banner_section( $args = null ) {
if ( ! is_array( $args ) ) {
$args = array();
}
if ( ! ( array_key_exists( \'title\', $args ) && $args[\'title\'] ) ) {
$args[\'title\'] = get_the_title();
在我们开始测试$args的属性并在其中设置属性之前,确保它是一个数组,并在尝试检查它是否为非空之前检查“title”是否存在。或者,如果不太可能将null作为参数传递,那么可以使用
function site_banner_section( $args = array() ) {
if ( ! ( array_key_exists( \'title\', $args ) && $args[\'title\'] ) ) {
我不知道你所说的重复代码是什么意思。如果您的意思是避免重复检查属性是否存在,那么您可以使用
wp_parse_args 填写默认值,例如。
function site_banner_section( $args = array() ) {
$defaults = array(
\'title\' => get_the_title(),
// etc.
);
$args = wp_parse_args( $args, $defaults );
但是,您需要调用get\\u the\\u title和get\\u字段来填充$默认值,即使您实际上没有使用这些值。