Як вызначыць параметр з пастаяннымі зменнымі для функцыі ў PHP?

<Р> <моцны> Можна стварыць дублікат:
   PHP і Пералічэнні

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

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

у гэтым прыкладзе $ NUM складаюцца з пастаяннай зменнай: «адзін, два, тры» Цяпер, як гэта ажыццявіць? ёсць 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('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
дададзена