2012-10-16 70 views
-2

下面我有很多使用PHP創建的添加和值。添加PHP問題

它一切正常!在這裏可以看到:http://universitycompare.com

EXCEPT - 第一組PHP中有'$ totalcost'。我似乎無法弄清爲什麼我的值在下面創建的不能用於創建總數。

有沒有意見?

<?php 
$totalcost = $totalcost2 + $totalcost3; 
$totalcost2 = $li444 + $tuitionTotal; 
$totalcost3 = $li4 + $li44; 
?> 

<!-- WORKING OUT TOTAL TCE --> 

<p> 
<b class="TCE"> 
<?php echo $totalcost; ?> 
<?php echo array_sum($a); ?> 
</b> 
</p> 

<!-- END OF WORKING OUT TOTAL TCE --> 

<br /><br /> 
<h2> 
Below is a a breakdown of the total cost of Education: 
</h2> 

<?php 
$li2 = get_field('average_drinks_spenditure_per_night'); 
$li3 = ($li2 * 28) * 2.1; 
$li4 = $li3 * 3; 
?> 

<div class="TCE"> 
<br /> 
<h2>Average spent on socialising</h2> 
<ul class="TCE"> 
<li><span>Average drink cost</span>&nbsp;&nbsp;£<?php echo the_field('average_drink_price'); ?></li> 
<li><span>Average drinks spenditure per night</span>&nbsp;&nbsp;£<?php echo $li2; ?></li> 
<li><span>Average drinks spenditure for the year</span>&nbsp;&nbsp;£<?php echo $li3;?><!-- JAVA BIT --></li> 
<li><span>Average drinks spenditure for 3 years</span>&nbsp;&nbsp;£<?php echo $li4;?><!-- JAVA BIT --></li> 
</ul> 

<?php 
$li22 = (get_field('average_housing_costs_per_week') * 4); 
$li33 = $li22 * 12; 
$li44 = $li33 * 3; 
?> 

<h2>Average spent on living costs</h2> 
<ul class="TCE"> 
<li><span>Housing per week</span>&nbsp;&nbsp;£<?php echo the_field('average_housing_costs_per_week'); ?></li> 
<li><span>Housing per month</span>&nbsp;&nbsp;£<?php echo $li22; ?></li> 
<li><span>Housing per year</span>&nbsp;&nbsp;£<?php echo $li33; ?></li> 
<li><span>Housing for 3 years</span>&nbsp;&nbsp;£<?php echo $li44; ?></li> 
</ul> 

<div class="clear"></div> 
<p><br /></p> 

<?php 
$li222 = (get_field('average_shopping_trip_price') * 2.25); 
$li333 = $li222 * 12; 
$li444 = $li333 * 3; 
?> 

<h2>Average spent on food shopping</h2> 
<ul class="TCE"> 
<li><span>Average shopping trip </span>&nbsp;&nbsp;£<?php echo the_field('average_shopping_trip_price'); ?></li> 
<li><span>Average shopping for the month</span>&nbsp;&nbsp;£<?php echo $li222; ?></li> 
<li><span>Average shopping for the year</span>&nbsp;&nbsp;£<?php echo $li333; ?></li> 
<li><span>Average shopping for 3 years</span>&nbsp;&nbsp;£<?php echo $li444; ?></li> 
</ul> 

<?php 
$tuitionClass = (get_field('tuition_fees') /28); 
$tuitionTotal = (get_field('tuition_fees') * 3); 
?> 

<h2>Average spent on tuition</h2> 
<ul class="TCE"> 
<li><span>Price per Week</span>&nbsp;&nbsp;£<?php echo $tuitionClass; ?></li> 
<li><span>Average tuition fee</span>&nbsp;&nbsp;£<?php echo the_field('tuition_fees'); ?></li> 
<li><span>Average tuition fee for 3 years</span>&nbsp;&nbsp;£<?php echo $tuitionTotal; ?></li> 
</ul> 
+0

如果我明白你的問題是你應該添加2個總成本後,你給他們一個價值,而不是之前。 –

回答

1

終於搞定了,因爲它似乎我不知道以前定義總數是不可能的,一些奇怪的原因,我認爲它會傳遞回來,經驗教訓!

<?php 
// AVERAGE DRINK COSTS 
$li2 = get_field('average_drinks_spenditure_per_night'); 
$li3 = ($li2 * 28) * 2.1; 
$li4 = $li3 * 3; 

// HOUSING COSTS 
$li22 = (get_field('average_housing_costs_per_week') * 4); 
$li33 = $li22 * 12; 
$li44 = $li33 * 3; 

// SHOPPING COSTS 
$li222 = (get_field('average_shopping_trip_price') * 2.25); 
$li333 = $li222 * 12; 
$li444 = $li333 * 3; 

// TUITION FEES 
$tuitionClass = (get_field('tuition_fees') /28); 
$tuitionTotal = (get_field('tuition_fees') * 3); 

// PHP TCE 
$totalcost2 = $li444 + $tuitionTotal; 
$totalcost3 = $li4 + $li44; 
$totalcost = $totalcost2 + $totalcost3; 
?> 

這就是我在最後使用的,只是在echo'd所需的任何值之前。

+0

感謝分享答案,很高興你解決! – halfer

1

PHP腳本執行從上到下。在定義它們的值之前,你不能只用變量來計算。

0

我不知道我理解你的問題。您似乎試圖在之前打印$ totalcost值$ countcost2(awful name btw!)和$ totalcost3已經被計算出來......這些只在腳本的底部設置,因此只能在點。如果您希望將這些值打印在頁面的頂部,那麼您需要將所有html緩存到一個字符串中(而不是將其轉儲到客戶端),一旦獲得了值,請將其轉儲出來,然後將其俘獲該頁面其餘部分的html字符串。那有意義嗎?是否解決你的問題?

0

您在定義整體後定義組件。

它應該是這樣的,而不是:

$totalcost2 = $li444 + $tuitionTotal; 
$totalcost3 = $li4 + $li44; 
$totalcost = $totalcost2 + $totalcost3; 
//This line should only come after $totalcost2 and 3 were defined! 
0

你加入他們,他們有一個值之前。

<?php 
$totalcost2 = $li444 + $tuitionTotal; 
$totalcost3 = $li4 + $li44; 
$totalcost = $totalcost2 + $totalcost3; 
?> 
+0

但他需要將其移至腳本的_bottom_,因爲$ li444是在主體中計算的。我想他希望總成本是一個標題,因此將他的頁面構建成字符串,然後計算總數,打印總數,然後打印緩衝到字符串中的頁面,這是實現他想要的頁面的方法。 – belial

0

據我瞭解,PHP解釋程序上通過線PHP文件中的行工作的方式,當他們被解釋分析變量分配到內存中。由於您在嘗試將它們彙總在一起時尚未定義$totalcost2$totalcost3,因此PHP解釋器沒有提及任何值並且無法將它們相加。

如果你把這個初始代碼塊放在頁面的底部,我想它會像你期待的那樣工作。