Язык D: как вы делаете, например, Php array(); foreach()?

#php #d

#php #d

Вопрос:

Как я могу правильно выполнить интерпретацию $ array и $ object и foreach () с Php на D?

Php (pro):

 class Zend_Models
{
    public static function getSome()
    {
      $array = array(
         "a" => "b",
         "b" => "b"
      );
      $object = (object) $array;

      foreach($object as $value)
      {
        $this->view->inject[] = $value;              
      }
      // Zend_Debug::dump($this->view->inject); 
      return "ok";
    }


    public static getAbove() 
    {
      return self::getSome();
    }
}
  

D (инкубатор, исправляющий ошибки):

 import std.stdio;

class Zend_Models
{
  void static getSome()
  {
    //?...
  }
}
  

Комментарии:

1. Не знаю D, но, судя по всему, это не динамический язык, подобный PHP. Вам нужно будет использовать какой-нибудь класс HashTable или что-то подобное.

2. Тогда было бы бесполезно изучать новые языки, чтобы минимизировать простоту, нет? Должен быть более разумный способ, чем PHP.

Ответ №1:

Я думаю, что это сделало бы это:

 import std.stdio;

class Zend_Models
{
    string getSome()
    {
          auto array = ["a", "b"];

          foreach(value; array)
          {
              this.view.inject ~= value;
          }

          return "ok";
       } 
    }

    string getAbove() {
        return getSome();
    }
}
  

Тем не менее, вам, вероятно, не стоит пытаться писать PHP на D. Вероятно, лучше использовать исключения, чем возвращать код состояния, и если вы возвращаете код состояния, перечисление, вероятно, лучше, чем строка.