Як визначити параметр з постійними змінними для функції в php?

Possible Duplicate:
PHP and Enums

Я хочу створити функцію з декількома параметрами, в яких одна з них має кілька постійних змінних. наприклад:

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

у цьому прикладі $ num складається з постійної змінної: "one, two, three" Тепер, як це здійснити? Є Enum у php?

спасибі ваш час

1

5 Відповіді

У PHP немає перекладу.  Просто визначте свої константи заздалегідь, а потім використовуйте їх. Якщо ви не хочете визначити їх як глобальні константи (і ви, ймовірно, не повинні в цьому випадку), ви можете визначити їх у своєму класі.

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

    public function testit() {

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

}

Якщо константа, яку ви намагаєтеся використовувати, не була визначена, то ви отримаєте помилку

4
додано

Ви шукаєте define() ?

define('one',1);

This answer also has a good PHP solution for enums:

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

var $today = DaysOfWeek::Sunday;
2
додано

Я припускаю, що ви бажаєте перерахованих типів:

Спробуйте код, подібний цьому

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; }
}

I have a web page that you can use to generate this code: http://well-spun.co.ukcode_templates/enums.php

1
додано

У ній немає енума, і це можна зробити, якщо вам це потрібно лише для однієї функції:

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

Це що ти хочеш зробити?

$nums = array(1 => 'one', 2 => 'two', 'three');
echo $nums[1];//one
echo $nums[3];//three
1
додано
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php