我此刻書面方式代碼在調用此代碼:PHP沒有返回值(甚至未NULL)
$reduced = is_reduced($pid);
set_sale($pid, $reduced);
echo " - " . $reduced . " - ";
因此,背後的邏輯應該是這樣的: 我調用函數is_reduced()
到知道,如果產品減少。通常,它應該在那裏返回真或假。但我沒有得到任何回報。你可以看到,我正在用變量向控制檯打印變量。但我什麼也沒看到。甚至不是NULL!
但在控制檯上,我可以看到,它得到「不減少」打印出來。所以,它也應該返回someting。因爲echo
後面跟着函數is_reduced
(下面的代碼)中的返回命令。
功能的一些信息: 一頁可以有多個價格。這就是爲什麼我有while循環的原因。如果只有一個價格,我得到-1
回到var aktueller_counter
。所以,我跳進第一個部落。在那裏檢查是否有較低的價格,如果是,如果這個價格不是0,不是「」並且不低於-1。
正如你所看到的,它說echo
其次是return
。但爲什麼我沒有得到任何NULL或任何布爾值回來?
我會很樂意幫忙! 親切的問候!
下面的代碼:
function is_reduced($pid){
$aktueller_counter = -1;
while(have_rows('product_shops', $pid)): the_row();
$aktueller_counter = $aktueller_counter + 1;
endwhile;
if($aktueller_counter == -1){
$price = get_field("product_shops_0_price", $pid);
$price_old = get_field("product_shops_0_price_old", $pid);
if($price_old < $price) {
if ($price_old != "") {
if ($price_old != 0) {
if ($price_old > -1) {
$price = null;
$price_old = null;
$aktueller_counter = null;
echo ", is \"reduced\"";
return true;
} else {
$price = null;
$price_old = null;
$aktueller_counter = null;
echo ", is NOT \"reduced\"";
return false;
}
} else {
$price = null;
$price_old = null;
$aktueller_counter = null;
echo ", is NOT \"reduced\"";
return false;
}
} else {
$price = null;
$price_old = null;
$aktueller_counter = null;
echo ", is NOT \"reduced\"";
return false;
}
} else {
$price = null;
$price_old = null;
$aktueller_counter = null;
echo ", is NOT \"reduced\"";
return false;
}
}else{
for($i = 0; $i <= $aktueller_counter; $i++){
$price = get_field("product_shops_".$i."_price", $pid);
$price_old = get_field("product_shops_".$i."_price_old", $pid);
if($price_old < $price){
if($price_old != ""){
if($price_old != 0){
if($price_old > -1) {
$price = null;
$price_old = null;
$aktueller_counter = null;
echo ", is \"reduced\"";
return true;
}
}else {
$price_old = null;
$price = null;
}
}else {
$price_old = null;
$price = null;
}
}else {
$price_old = null;
$price = null;
}
}
$price = null;
$price_old = null;
$aktueller_counter = null;
echo ", is NOT \"reduced\"";
return false;
}
}
當我面對其中一個問題時,我會做的就是在這裏寫一個'echo';'將代碼從if轉移到next,如果在幾分鐘內你會看到你的代碼是如何工作的(和問題)。 – Andreas
'回聲'功能的工作權利? –
我已經做到了「不減少」。所以,它應該是返回的東西... – Erik