3v4l.org

run code in 300+ PHP versions simultaneously
<?php function Query($str) { echo "$str\n"; } function Item_Search($AppID, $Keyword = '', $Wears) { // expected $Wears = [1,0,1,0,1] , numbers can be different from 0 to 1 $WearNames = ['red', 'green', 'blue', 'yellow', 'black']; $FinalWear = []; foreach ($Wears as $i => $Wear) { if ($Wear == 1) { $FinalWear[] = $WearNames[$i]; } } $FinalWear = "'" . implode("','", $FinalWear) . "'"; $EmptyWear = array_sum($Wears) == count($Wears) ? "OR wear = ''" : ''; $ItemList = Query(<<<EOD SELECT * FROM items WHERE appid=$AppID AND name LIKE '%$Keyword%' AND (wear IN ($FinalWear) $EmptyWear) EOD ); } Item_Search(4, 'shirt', [1, 0, 1, 0, 1]); Item_Search(13, 'shoe', [1, 1, 1, 1, 1]);
Output for 8.4.1 - 8.4.12
Deprecated: Item_Search(): Optional parameter $Keyword declared before required parameter $Wears is implicitly treated as a required parameter in /in/DigL7 on line 7 SELECT * FROM items WHERE appid=4 AND name LIKE '%shirt%' AND (wear IN ('red','blue','black') ) SELECT * FROM items WHERE appid=13 AND name LIKE '%shoe%' AND (wear IN ('red','green','blue','yellow','black') OR wear = '')
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25
Deprecated: Optional parameter $Keyword declared before required parameter $Wears is implicitly treated as a required parameter in /in/DigL7 on line 7 SELECT * FROM items WHERE appid=4 AND name LIKE '%shirt%' AND (wear IN ('red','blue','black') ) SELECT * FROM items WHERE appid=13 AND name LIKE '%shoe%' AND (wear IN ('red','green','blue','yellow','black') OR wear = '')
Output for 8.0.0 - 8.0.30
Deprecated: Required parameter $Wears follows optional parameter $Keyword in /in/DigL7 on line 7 SELECT * FROM items WHERE appid=4 AND name LIKE '%shirt%' AND (wear IN ('red','blue','black') ) SELECT * FROM items WHERE appid=13 AND name LIKE '%shoe%' AND (wear IN ('red','green','blue','yellow','black') OR wear = '')
Output for 7.1.25 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
SELECT * FROM items WHERE appid=4 AND name LIKE '%shirt%' AND (wear IN ('red','blue','black') ) SELECT * FROM items WHERE appid=13 AND name LIKE '%shoe%' AND (wear IN ('red','green','blue','yellow','black') OR wear = '')

preferences:
143.84 ms | 412 KiB | 5 Q