PHP で enum または const をメソッド引数として許可する方法はありますか。Qt/C++ ではこのように使用できますが、もちろん C++ はそれをサポートしています (言語依存)。
Qt/C++/SslSocket
enum PeerVerifyMode {
VerifyNone,
QueryPeer,
VerifyPeer,
AutoVerifyPeer
};
void setPeerVerifyMode(QSslSocket::PeerVerifyMode mode);
私はこれを試しました:
初め:
class Controller_My
{
const MENU_FRONT = 0;
const MENU_SESSION = 1;
public function render($menu_model)
{
$menu_model = intval($menu_model);
if( $menu_model === 0 )
$menu = new Model_Menu_Front();
if( $menu_model === 1 )
$menu = new Model_Menu_Session();
}
}
私はこの投稿も読みました クラスからの定数をPHP関数の引数定義として使用する方法? . ただし、 http: //sourcemaking.com/refactoring/replace-conditional-with-polymorphism インターフェイス/実装ソリューションを使用しても、パラノインされている場合は、switch/if ステートメントを使用します。このような:
class EmployeeType...
int payAmount(Employee emp) {
switch (getTypeCode()) {
case ENGINEER:
return emp.getMonthlySalary();
case SALESMAN:
return emp.getMonthlySalary() + emp.getCommission();
case MANAGER:
return emp.getMonthlySalary() + emp.getBonus();
default:
throw new RuntimeException("Incorrect Employee");
}
}