我對PHP很陌生,並且被要求編寫一個基於時間顯示圖像的腳本。我已經扣除了我需要使用PHP的本地'日期'功能,直到我被要求實施銀行假期和聖誕節,一切順利。如何阻止我的IF語句發生衝突,以及如何選擇哪個語句具有優先級?
我試圖添加聖誕節和銀行假期作爲單獨的if語句,但那是在災難來臨時,我無法弄清楚爲什麼它會停下來。我試過使用在線PHP驗證器無濟於事。
請不要害怕向我拋出細節和術語,因爲我真的希望擴展我對PHP的知識,並且更少依靠網絡論壇的支持!
下面是代碼:
所有的<?php
// Date-time (day of month, month)
$d = date('j'); // Day of month: Numeric without leading zeroes
$m = date('n'); // Month: As above
$D = date('w'); // Day of week
$H = date('G'); // Hour of day
// REGULAR OPENING TIMES
// Closed before 9am on weekdays
if ($H < 9 && $D <= 5) :
$showroom_img = '/media/gbu0/pagehead/showroom_closed.jpg';
// Open before 5pm (but after 9, as first if statement overrides this) on weekdays
elseif ($H < 17 && $D <= 5) :
$showroom_img = = '/media/gbu0/pagehead/showroom_open.jpg';
// Closed before 10am on Saturdays
elseif ($H < 10 && $D == 6) :
$showroom_img = = '/media/gbu0/pagehead/showroom_closed.jpg';
// Open between 10am and 2pm on Saturdays
elseif ($H < 14 && $H > 10 && $D == 6) :
$showroom_img = = '/media/gbu0/pagehead/showroom_open.jpg';
// Any other time, display closed image :)
else :
$showroom_img = = '/media/gbu0/pagehead/showroom_closed.jpg';
endif;
// Holidays 2014
$xmas_starts = ($d == 23 && $m == 12 && $d > 17);
$xmas_ends = ($d == 26 && $m == 12);
$nyd = ($d == 1 && $m = 1);
// Easter Friday: April 18
// Easter Monday: April 21
// Early Spring B/H: May 5
// Late Spring B/H: May 26
// Summer B/H: August 25
// All bank holidays: 10am - 2pm
if(date >= $xmas_starts && $day <= $xmas_ends) :
$xmas = true;
elseif(date = $nyd) :
$nyd = true;
else :
$bankhol = false;
endif;
if($xmas = true) :
$showroom_img = "/media/gbu0/pagehead/showroom_xmas.jpg";
elseif($bankhol = true && date('F', 'j') = strpos('April 18' || 'April 21' || 'May 5' || 'May 26' || 'August 25') || date('w') = 6) :
$showroom_img = "/media/gbu0/pagehead/showroom_bhol.jpg";
elseif(date('w') = 7) :
$showroom_img = "/media/gbu0/pagehead/showroom_closed.jpg";
else :
$showroom_img = "/media/gbu0/pagehead/showroom_open.jpg";
endif;
?>
'if($ xmas = true)' - 這將永遠是真的;一個'='分配一個值。如果你想比較,那麼你需要'==' – andrewsi
通過應用邏輯 - 這適用於編程的一個主體。 –
我想說的是,如果$ xmas被設置爲'true',如前面的語句所指定的那樣($ xmas的值取決於服務器時間是在兩個之間日期),然後將主變量設置爲聖誕節圖像,否則使用銀行假日圖像或關閉,或依此類推。 我是否需要指定'$ xmas'是否爲true,然後忽略它並關注其後的'elseif's中的其他變量? –