语言:php
<?php
class A{
function A(){
//在此放入代码使AA方法不执行但不影响BB方法中echo "I am BB!<br>";的执行
}
function AA(){
echo "I am AA!<br>";
}
}
class B{
function B(){ }
function BB(){
$A = new A();
$A->AA();
echo "I am BB!<br>";
}
}
$B = new B();
$B->BB();
?>
<?php
class A{
function A(){
//在此放入代码使AA方法不执行但不影响BB方法中echo "I am BB!<br>";的执行
}
function AA(){
echo "I am AA!<br>";
}
}
class B{
function B(){ }
function BB(){
$A = new A();
$A->AA();
echo "I am BB!<br>";
}
}
$B = new B();
$B->BB();
?>
<?php
class A{
function A($d=false){
$this->d=$d;
//在此放入代码使AA方法不执行但不影响BB方法中echo "I am BB!<br>";的执行
}
function AA(){
if($this->d){
echo "I am AA!<br>";
}
}
}
class B{
function B(){ }
function BB(){
$A = new A();
$A->AA();
echo "I am BB!<br>";
}
}
$B = new B();
$B->BB();
?>
class A{
function A(){
$this->AA(); //用$this指向本类的方法,A类被实例化的时候调用。
}
function AA(){
echo "I am AA!<br>";
}
}
class B{
function B(){ }
function BB(){
$A = new A();
$A->AA();
echo "I am BB!<br>";
}
}
$B = new B();
$B->BB();
?>输出结果:
I am AA!<br>I am AA!<br>I am BB!<br>
<?php
class A{
function A(){
//补充:
//这里需要做判断:如果成立则继续执行AA(),如果不成立则不执行AA()跳回到(注释1)处继续执行echo "I am BB!<br>";
}
function AA(){
if($this->d){
echo "I am AA!<br>";
}
}
}
class B{
function B(){ }
function BB(){
$A = new A();
$A->AA();
(注释1)echo "I am BB!<br>";
}
}
$B = new B();
$B->BB();
?>
private $b = false;
function A($b){
$this->b = $b;/////////////这块
}
function AA(){
if($this->b)echo "I am AA!<br>";/////////////////这块
}
}
class B{
function B(){ }
function BB(){
$A = new A(false);///////////////这块,其中FALSE也可以当参数传进来
$A->AA();
echo "I am BB!<br>";
}
}
$B = new B();
$B->BB();
private $b = false;
function A(){
if(外部变量(可能为true也可能为false) == true){
$b = true;
}
}
function AA(){
if($this->b)echo "I am AA!<br>";
}
}
class B{
function B(){ }
function BB(){
$A = new A();
$A->AA();
echo "I am BB!<br>";
}
}
$B = new B();
$B->BB();
大体就是这个意思,够清晰了,但是现在不想在A中没个函数都加上if($this->b)这个判断,能否有办法
<?php
class A{
function A($not_allow=array()){
$this->not_allow=$not_allow;
//在此放入代码使AA方法不执行但不影响BB方法中echo "I am BB!<br>";的执行
}
private function m_AA(){
echo "I am AA!<br>";
}
function __call($m,$ps){
$m=preg_replace('/^_m/i','',$m);
if(!in_array($m,$this->not_allow)&&method_exists($this,"m_{$m}")){
call_user_func_array(array(&$this,"m_{$m}"),$ps);
}
}
}
class B{
function B(){ }
function BB(){
$A = new A();
$A->AA();
echo "I am BB!<br>";
}
}
$B = new B();
$B->BB();
?>
也谢谢以上各位大神们!