Son zamanlarda sabitler tamsayı değerler atama ve sadece amacını tanımlayan bir aracı olarak sabit adını kullanarak alışkanlığı oldum. Ancak, bazı durumlarda bu bir dize temsili gerektiğinde typeToString ($ Kat) gibi bir işlevi yazmak için ihtiyaç sonuçlandı. Açıkçası bu verimsiz ve gereksiz olduğunu, ancak bir sorun her seferinde bir süre olduğunu.
Yani, ben düşünmelisiniz başka makasına benim soru var mı? Bu durumda temizleyici / daha standartlarla uyumlu olarak kabul edilir? Ayrıca, çoğu için performans farkı negligable?
Case 1: (faster when a string version is not needed?)
class Foo {
const USER_TYPE_ADMIN = 0;
const USER_TYPE_USER = 1;
const USER_TYPE_GUEST = 2;
public $userType = self::USER_TYPE_ADMIN;
public function __construct($type) {
$this->userType = $type;
}
public function typeToString() {
switch($this->userType) {
case self::USER_TYPE_ADMIN:
return 'admin';
break;
case self::USER_TYPE_USER:
return 'user';
break;
case self::USER_TYPE_GUEST:
return 'guest';
break;
default:
return 'unknown';
break;
}
}
}
$foo = new Foo(Foo::USER_TYPE_GUEST);
echo $foo->typeToString();
// Displays "guest"
Case 2:(faster/easier when a string version is needed)
class Foo {
const USER_TYPE_ADMIN = 'admin';
const USER_TYPE_USER = 'user';
const USER_TYPE_GUEST = 'guest';
public $userType = self::USER_TYPE_ADMIN;
public function __construct($type) {
$this->userType = $type;
}
}
$foo = new Foo(Foo::USER_TYPE_GUEST);
echo $foo->userType();
// Displays "guest"