任何人都可以解释我为什么即使没有放<?php echo $mobile; ?>
我只需输入此部分:
<?php $mobile = table_phone(); ?>
和电话号码显示,但不是我想要的地方。不是我打电话的地方
<?php echo $mobile; ?>
我尝试使用像osc_user_phone_land()
这样的其他函数,它是osclass核心的一部分,而且工作正常,但是调用mobile_phone,实际上是插件的一部分,但是工作不正常。
有什么想法吗?我的编码知识非常有限,所以它可能是一个非常简单的修复..
以下是更多代码:
<div class="description-right">
<?php
$mobile = '';
if($mobile == '') { $mobile = table_phone(); }
if($mobile == '') { $mobile = __('No phone number', 'OSCLASS'); }
?>
<div class="mob-wrap">
<div class="mob-top">
<span><i class="fa fa-phone"></i><?php _e("Contact", 'OSCLASS'); ?> </span>
</div>
<div class="mobile-show" rel="<?php echo $mobile; ?>">
<span>
<?php
if(strlen($mobile) > 3 and $mobile <> __('No phone number', 'OSCLASS')) {
echo substr($mobile, 0, strlen($mobile) - 3) . 'XXX';
} else {
echo $mobile;
}
?>
</span>
</div>
</div>
来自helper.php的函数
<?php
function get_realestate_attributes(){
$locale = osc_current_user_locale();
$return = array('attributes','other_attributes','special','lang','tel_num');
$detail = ModelRealEstate::newInstance()->getAttributes( osc_item_id() );
$keys = array_keys($detail) ;
if(count($keys) == 1 && $keys[0] == 'locale' && is_null($detail[0]['locale']) ){
// nothing to do
return false;
}
if(@@$detail['locale'][$locale]['s_number'] != "") {
$return['tel_num']['year'] = array(
'label' =>__('Telephone number', 'realestate_attributes')
,'value' => @@$detail['locale'][$locale]['s_number']
);
}
return $return;
}
function table_phone(){
$detail = get_realestate_attributes();
if($detail['tel_num']){
?>
<span>
<?php
foreach($detail['tel_num'] as $item){
echo ''.$item['value'].'';
}
?>
</span>
<?php
}
}
答案 0 :(得分:1)
像这样更改table_phone()
方法:
function table_phone(){
$detail = get_realestate_attributes();
$result = '';
if($detail['tel_num']) {
foreach($detail['tel_num'] as $item){
$result .= $item['value'];
}
}
return $result;
}
现在你可以$mobile = tab_phone();
,你将没有任何输出
如果要显示它,请使用echo $mobile
。
因为我已删除了您方法中的<span>
,所以您可以手动添加它,如:
<span><?php echo $mobile; ?></span>
如果无法更改方法,请使用如下所示的闭包:
if($mobile == '') {
$mobile = function() {
table_phone();
};
}
在您呼叫$mobile
的任何地方,请使用:
<?php $mobile(); ?> // Result is displayed