3v4l.org

run code in 300+ PHP versions simultaneously
<?php class PayDay { public function __construct($Ymd = null) { $this->date = $Ymd ?: date("Y-m-d"); $this->holiday_calendar = [ (object)["holiday" => "New Year's Day", "holidayDate" => "2018-01-01"], (object)["holiday" => "Republic Day", "holidayDate" => "2018-01-26"], (object)["holiday" => "Holi", "holidayDate" => "2018-03-02"] ]; $this->payroll_days_list = [ (object)["payrollDay" => "Mon", "isPayrollDay" => "Y"], (object)["payrollDay" => "Tue", "isPayrollDay" => "Y"], (object)["payrollDay" => "Wed", "isPayrollDay" => "Y"], (object)["payrollDay" => "Thu", "isPayrollDay" => "Y"], (object)["payrollDay" => "Fri", "isPayrollDay" => "Y"], (object)["payrollDay" => "Sat", "isPayrollDay" => "N"], (object)["payrollDay" => "Sun", "isPayrollDay" => "N"] ]; echo "Starting Date: ",$this->date,"\n"; } public function getPayDate() { $hc_match = false; foreach (array_reverse($this->holiday_calendar) as $hc) { if ($hc->holidayDate == $this->date) { $hc_match = true; //echo "Avoided: ",$hc->holiday,"\n"; $this->loseOneDay(); //echo "New Date: ",$this->date,"\n"; } elseif ($hc_match) { break; } } $pdl_match = false; foreach (array_reverse($this->payroll_days_list) as $pdl) { if ($pdl->payrollDay == date("D", strtotime($this->date)) && $pdl->isPayrollDay == "N") { $pdl_match = true; //echo "Avoided: ",$pdl->payrollDay,"\n"; $this->loseOneDay(); //echo "New Date: ",$this->date,"\n"; } elseif ($pdl_match) { break; } } //echo $this->date; if ($hc_match || $pdl_match) { //echo "\tRECURSE\n"; $this->getPayDate(); } return $this->date; } public function loseOneDay(){ return $this->date = date("Y-m-d", strtotime($this->date." -1 day")); } } $date = new PayDay("2018-03-04"); echo "Adjusted Date: ",$date->getPayDate();
Output for 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0 - 8.5.1
Deprecated: Creation of dynamic property PayDay::$date is deprecated in /in/amkvS on line 5 Deprecated: Creation of dynamic property PayDay::$holiday_calendar is deprecated in /in/amkvS on line 7 Deprecated: Creation of dynamic property PayDay::$payroll_days_list is deprecated in /in/amkvS on line 13 Starting Date: 2018-03-04 Adjusted Date: 2018-03-01
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.
Output for 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33
Starting Date: 2018-03-04 Adjusted Date: 2018-03-01

preferences:
153.75 ms | 410 KiB | 5 Q