在类中有一个烦人的函数,它添加了广告,我希望它们从类外部删除。该函数如下所示:
class Ads_Form {
public function admin_footer( $submit = true, $show_sidebar = true ) {
if ( $show_sidebar ) {
$this->admin_sidebar();
}
}
}
正如您所看到的,有一个名为$show_sidebar
的变量默认设置为true
。
如何从班级外部将此变量设置为false
?
答案 0 :(得分:0)
调用此方法时,如果不提供参数,则默认为false:
$obj = new Ads_Form();
$obj->admin_footer();
// $show_sidebar gets set to true
只需传递参数,它将覆盖默认值:
$obj = new Ads_Form();
$obj->admin_footer(true, false);
// $show_sidebar gets set to false
答案 1 :(得分:-1)
如果不编辑文件本身就很难实现。无论哪种方式,您都必须编辑该类,或调用此函数的每个文件/函数。
如果您有权编辑类文件,而不是删除类或更改默认值,只需注释掉该行:
// $this->admin_sidebar();
这样可以防止对此功能的任何调用被覆盖,并且会在其他地方停用广告。
您也可以只更改默认值:
admin_footer( $submit = true, $show_sidebar = false )
答案 2 :(得分:-1)
class Ads_Form {
public $show_sidebar = true;
public function admin_footer($submit = true, $show_sidebar = null) {
if(!is_null($show_sidebar)) {
$this->show_sidebar = (boolean)$show_sidebar;
}
}
if($this->show_sidebar) {
echo 'test<br>';
}
}
测试代码!
$Ads_Form = new Ads_Form;
echo '------------TEST 1-------------<br>';
$Ads_Form->admin_footer();
$Ads_Form->show_sidebar = false;
echo '------------TEST 2-------------<br>';
$Ads_Form->admin_footer();