Skip to content

Commit a7c5771

Browse files
authored
Merge pull request #241 from LeSuisse/php-warning-incomplete-case-expression
Fix PHP warnings when building an incomplete CASE expression
2 parents a60822c + b47e27b commit a7c5771

19 files changed

+26
-20
lines changed

src/Components/CaseExpression.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,21 @@ class CaseExpression extends Component
3333
*
3434
* @var array
3535
*/
36-
public $conditions;
36+
public $conditions = [];
3737

3838
/**
3939
* The results matching with the WHEN clauses.
4040
*
4141
* @var array
4242
*/
43-
public $results;
43+
public $results = [];
4444

4545
/**
4646
* The values to be compared against.
4747
*
4848
* @var array
4949
*/
50-
public $compare_values;
50+
public $compare_values = [];
5151

5252
/**
5353
* The result in ELSE section of expr.

tests/Components/CaseExpressionTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,10 @@ public function testParseBuild8()
118118
'CASE WHEN 1=1 THEN "Some" WHEN 1=2 THEN "SomeOther" END AS `foo`'
119119
);
120120
}
121+
122+
public function testBuildWithIncompleteCaseExpression()
123+
{
124+
$incomplete_case_expression_component = new CaseExpression();
125+
$this->assertEquals('CASE END', CaseExpression::build($incomplete_case_expression_component));
126+
}
121127
}

tests/data/parser/parseSelectCase1.out

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

tests/data/parser/parseSelectCase2.out

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

tests/data/parser/parseSelectCase3.out

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

tests/data/parser/parseSelectCase4.out

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

tests/data/parser/parseSelectCaseAlias1.out

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

tests/data/parser/parseSelectCaseAlias2.out

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

tests/data/parser/parseSelectCaseAlias5.out

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

tests/data/parser/parseSelectCaseAlias6.out

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)