[英]Confusing Function Output
我對以下功能的結果感到非常困惑。 我知道這只是一小段代碼,但我認為有足夠的信息可以理解應該發生的情況:
while ($k < $dateCount) {
echo $k." ==> ".$forecastData[$k]['Booked Date']." ==> ".$startDate."<br>";
if($forecastData[$k]['Booked Date'] == $startDate){
echo $k." ==> YAY<br>";
}
else{
echo $k." ==> boo ==> ".$startDate."<br>";
}
$k++;
$startDate = date('Y-m-d', strtotime("+1 day", strtotime($startDate)));
}
$ k是數組鍵->從0開始;
$ dateCount是數組的大小(要在31天或此范圍長的范圍內停止)
$ forecastData是日期中所有銷售數據的多維數組。 –包含該日期的信息負載,包括預訂日期,該日期是信息存儲的日期。
$ startDate是已輸入但已轉換為去年同一天的日期–在這種情況下,輸入的日期為2016年10月1日,轉換后的日期為2015年9月26日
我想說的是,如果日期相等,則用單詞YAY回顯數組的編號,否則用單詞boo回顯數組的編號。
每個循環的k與日期一樣增加1。
我還打印了循環的初始值,以顯示比較結果。
我無法理解的是這是輸出:
0 ==> 2015-09-26 ==> 2015-09-26
0 ==>噓==> 2015-09-26
1 ==> 2015-09-27 ==> 2015-09-27
1 ==>可以
2 ==> 2015-09-28 ==> 2015-09-28
2 ==>可以
3 ==> 2015-09-29 ==> 2015-09-29
3 ==>可以
4 ==> 2015-09-30 ==> 2015-09-30
4 ==>可以
5 ==> 2015-10-01 ==> 2015-10-01
5 ==>可以
6 ==> 2015-10-02 ==> 2015-10-02
6 ==>可以
7 ==> 2015-10-03 ==> 2015-10-03
7 ==>可以
8 ==> 2015-10-04 ==> 2015-10-04
8 ==>可以
9 ==> 2015-10-05 ==> 2015-10-05
9 ==>可以
10 ==> 2015-10-06 ==> 2015-10-06
10 ==>可以
11 ==> 2015-10-07 ==> 2015-10-07
11 ==>可以
第一個對我沒有意義?? 它確實等於應有的值,但是由於某些原因而跳過了它? 另外,如果我對日期進行硬編碼,它將可以正常工作。
我一直在努力了解這一點,以至於任何想法都會有所幫助
謝謝
從您的輸出中,我看到突出顯示2015-09-26
也會選擇尾部空白,而突出顯示2015-09-27
沒有尾部空間。
所以這意味着2015-09-26
!= 2015-09-26_
。 使用trim($startDate)
或僅檢查此尾隨空白的位置。
另外,在調試時最好使用var_dump($startDate); => string(11) "2015-09-26 "
var_dump($startDate); => string(11) "2015-09-26 "
。 這樣,您還將看到字符串長度。
從個人經驗
正在將hello
與hello
比較失敗。 原來是var_dump($var);
顯示hello
length為10。進一步的調查顯示,它是\\0h\\0e\\0l\\0l\\0o
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.