From 497511cc1702a6543fb08a1aaa18369665c11508 Mon Sep 17 00:00:00 2001 From: Abhimanyu Sharma Date: Tue, 21 Jul 2015 16:41:35 +0530 Subject: [PATCH] Resolves FatalErrorException `foreach` loop will only execute if `$this->params` is array and no empty. Other wise it will case `FatalErrorException` while using `JitImage::take();` --- FilterExpression.php | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/FilterExpression.php b/FilterExpression.php index 26f1ccf..e9a8c31 100644 --- a/FilterExpression.php +++ b/FilterExpression.php @@ -260,30 +260,37 @@ private function compileParams() { $filters = []; - foreach ($this->params as $fname => $options) { + if(!empty($this->params)) + { + foreach ($this->params as $fname => $options) + { + + if (is_int($fname)) + { + $fname = $options; + $options = []; + } - if (is_int($fname)) { - $fname = $options; - $options = []; - } + array_push($filters, ':', $fname); - array_push($filters, ':', $fname); + $opts = []; - $opts = []; + if (empty($options)) + { + continue; + } - if (empty($options)) { - continue; - } + foreach ((array) $options as $key => $value) + { + $opts[] = sprintf('%s=%s', $key, $value); + } - foreach ((array)$options as $key => $value) { - $opts[] = sprintf('%s=%s', $key, $value); + $filters[] = ';' . implode(';', $opts); } - $filters[] = ';' . implode(';', $opts); + array_shift($filters); } - - array_shift($filters); - + return implode('', $filters); } }