PHP, create_function veya zamanında bunu evalute?

2 Cevap php

i have a class with some method that depend by one parameter. What is the best way to write this method?

Örnek:

First way

class Test{

    var $code;

    function Test($type){
    	if($type=="A"){
    		$this->code=create_function(/*some args and some code*/);
    	}
    	else if($type=="B"){
    		$this->code=create_function(/*some args and some code*/);
    	}
    }

    function use(/*some args*/){
    	return call_user_func($this->code,/*some args*/);
    }
}

Second way

class Test{

    var $type;

    function Test($type){
    	$this->type=$type;
    }

    function use(/*some args*/){
    	if($this->type=="A"){
    		//some code
    	}
    	else if($this->type=="B"){
    		//some code
    	}
    }
}

$test=new Test("A");
$test->use();

Hangi seçerdiniz yolu?

Teşekkürler.

2 Cevap

call_user_func ağır bir fonksiyonudur (ve en iyi diğer şekillerde kullanılan) ve ikinci yolu ise, bu kod, nesne yönelimli bir şekilde kesinlikle yok olacaktır: Ben ikinci yolu, yeni başlayanlar için seçsin .

Cevaplar için teşekkürler.

I have think about this becouse im building a class for database interaction. So it would be nice can do this:

$db=new DB(/* host, user etc*/, "mysql");
or
$db=new DB(/* host, user etc*/, "mysqli");

Ama evet, en iyi yolu, miras ve OO olduğunu, ben bu gibi bazı yapabilirsiniz:

$db=new MysqlDB(/* host, user etc*/);
or
$db=new MysqliDB(/* host, user etc*/);

Tekrar teşekkürler.