未定义的变量,但它适用于我.调试的注意



我在元素插件中得到一个调试通知。未定义变量$out,但它适用于我。我不知道我做错了什么。

朋友们,请帮帮我!

非常感谢!

注意:

未定义变量:out on line 1077 file/Applications/MAMP/htdocs/…

private function content($content,$disp) {
foreach ($content as $item){
$img = tmaddon_bg_images($item['img']['id'],$settings['img_size']);
$title = $item['title'] ? '<span class="tm-title"><p>'.$item['title']. '</p></span>' : '';
$subtitle = $item['subtitle'] ? '<span class="tm-subtitle"><p>'.$item['subtitle']. '</p></span>' : '';
$label_text = $item['label-text'] ? '<span>'.$item['label-text']. '</span>' : '';
// $icon = $item['icon'] ? '<span class="item-icon"><i class="'.$item['icon'].'"></i></span>' : '';
$icon = $item['icon'] ? '<div class="read-more-btn link link--arrowed">
<svg class="arrow-icon" xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="9 9 32 32">
<g fill="none" stroke="" stroke-width="1.5" stroke-linejoin="round" stroke-miterlimit="10">
<circle class="arrow-icon--circle" cx="25" cy="25" r="15.12"></circle>
<i class="arrow-icon--arrow '.$item['icon'].'"></i>
</g>
</svg>
</div>' : '';
$carcls = $disp == 'carousel' ? 'swiper-slide' : $disp;
$url = $item['url']['url'];
$ext = $item['url']['is_external'];
$nofollow = $item['url']['nofollow'];
$url = ( isset($url) && $url ) ? 'href='.esc_url($url). '' : '';
$ext = ( isset($ext) && $ext ) ? 'target= _blank' : '';
$nofollow = ( isset($url) && $url ) ? 'rel=nofollow' : '';
$link = $url.' '.$ext.' '.$nofollow;
$btn = $url ? '<a '.$link.' class="fullink"></a>' : '';

$out .= '
<div class="items '.$carcls.'">
<div class="item-wrap">
<div '.$img.' class="item-image lazyload">
'.$btn.'
<div class="label-text">'.$label_text.'</div>
<div class="item-content">
'.$icon.$title.$subtitle.'
</div>
</div>
</div>
</div>
';
}
return $out;        
}
}

出现这个警告的原因是当$out第一次使用时,它指的是自己:

$out .= '....'

这是说追加一个字符串到$out。但是由于$out从未初始化,因此不清楚应该添加什么字符串。

要删除此警告,请在循环开始之前初始化$out:

$out = '';
foreach ($content as $item){
// ...etc

最新更新