Помогите с написанием php-кода, который повторяется для каждого значения массива - PullRequest
0 голосов
/ 02 апреля 2010

Привет! Я использую Closure Compiler для сжатия и объединения нескольких файлов JavaScript, синтаксис примерно такой:

$c = new PhpClosure();
$c->add("JavaScriptA.js")
  ->add("JavaScriptB.js")
  ->write();

Как сделать так, чтобы оно систематически добавляло больше файлов из массива, скажем, для каждого элемента массива в $ file = array ('JavaScriptA.js', 'JavaScriptB.js', 'JavaScriptC.js', ..) это было бы выполните следующий код

$c = new PhpClosure();    
$c->add("JavaScriptA.js")
  ->add("JavaScriptB.js")
  ->add("JavaScriptC.js")
  ->add
  ...
  ->write();

Заранее большое спасибо!

1 Ответ

3 голосов
/ 02 апреля 2010

В коде PhpClosure используется метод цепочки , чтобы уменьшить количество повторяющихся кодов и сделать все немного приятнее. Функции (или, по крайней мере, функция add) возвращают $this (объект, для которого была вызвана функция).

Код в первом примере может быть записан как:

$c = new PhpClosure();
$c->add("JavaScriptA.js");
$c->add("JavaScriptB.js");
$c->write();

Средняя часть (вызовы функции add) может быть преобразована таким образом, чтобы она зацикливалась на массиве файлов, вместо добавления строки для каждого файла.

$files = array("JavaScriptA.js", "JavaScriptB.js");
$c = new PhpClosure();
foreach ( $files as $file ){
    $c->add($file);
}
$c->write();
...