2011-10-28 34 views
1

可能性の重複:
PHP and Enumsphpの関数の定数変数でパラメータを定義する方法は?

が、私はそれらの一つは、いくつかの定数変数を持っているいくつかのパラメータを持つ関数を作成したいです。例えば :この例では、$ num個で

<?php 
function print($str, $num){...} 
. 
. 
. 
print("omid",one); 
print("omid",two); 
?> 

は一定の変数で構成されています:「1、2、3」 今、それを実装する方法? PHPのEnumはありますか?

おかげで、あなたの時間が

答えて

4

PHPには列挙型はありません。 定数をあらかじめ定義しておきます。 グローバル定数として定義したくない場合(そしてこの場合はそうではないはずです)、クラス内で定義することができます。これは、あなたが何をしたいのか

class myclass { 
    const ONE = 1; 
    const TWO = 2; 
    const THREE = 3; 

    public function testit() { 

     echo("omid". self::ONE); 
     echo ("omid". self::TWO); 
    } 

} 

定数使用しようとしているが定義されていなかった場合は、エラー

2

あなたはdefine()をお探しですか?

define('one',1); 

This answerも列挙型のために良いPHPソリューションを持っています

class DaysOfWeek 
{ 
    const Sunday = 0; 
    const Monday = 1; 
    // etc. 
} 

var $today = DaysOfWeek::Sunday; 
1

を取得しますか?あなたが唯一の機能のためにこれを必要とする場合

$nums = array(1 => 'one', 2 => 'two', 'three'); 
echo $nums[1]; // one 
echo $nums[3]; // three 
1

何の列挙型は、あなたが何ができるか、ありませんが、このです:

function foobar($str, $num){ 
    // allowed values (whitelist) 
    static $num_allowed = array('one', 'two', 'three'); 
    if(!in_array($num, $num_allowed)){ 
    // error 
    } 
    // ... 
} 
1

私はあなたが列挙型を欠けていると仮定しています:

は、いくつかのコードを試してみてくださいこのように

class DAYS 
{ 
    private $value; 
    private function __construct($value) 
    { 
     $this->value = $value; 
    } 
    private function __clone() 
    { 
     //Empty 
    } 
    public static function MON() { return new DAYS(1); } 
    public static function TUE() { return new DAYS(2); } 
    public static function WED() { return new DAYS(3); } 
    public function AsInt() { return $this->value; } 
} 

このコードを生成するために使用できるWebページがあります:http://well-spun.co.ukcode_templates/enums.php

関連する問題