Example 2



2-дах жишээн дээр хэдvvлээ интэрнэтээр гитар зарж байлаа гэж бодъё. Гитар бvр $50 ба татварт нийт худалдааны 10%-г тєлнє. Хэрвээ худалдааны єртєг $300-с давсан нєхцєлд $99 хvртэлх хєнгєлєлт vзvvлнэ гэж бодъё.

Доорх 2 цонхонд харгалзах утгуудыг бєглєнє vv.


Тоо:
Хєнгєлєлт:
  

Тэгэхээр эхлээд сорсыг харъя.

<FORM NAME="form1" METHOD="post" ACTION="example2.php">
Тоо:
<INPUT TYPE="text" NAME="quantity" SIZE="4" MAXLENGTH="6"><BR>
Хєнгєлєлт:
<INPUT TYPE="text" NAME="discount" SIZE="1" MAXLENGTH="2"><BR>
<INPUT TYPE="submit" NAME="Submit" VALUE="Тооцоол">&nbsp;&nbsp;
<INPUT TYPE="reset" NAME="Submit2" VALUE="Єєрчлєх"></FORM>


Эндээс харахад дээрх 2 формын цонхнуудад QUANTITY (тоо) ба DISCOUNT (хєнгєлєлт) гэсэн 2 input авдаг. Авсан input-aa дараачийн РНР хуудаст шилжvvлэхэд тэдгээр нь argument болоод function-уудад хэрэглэгдэнэ.

Одоо РНР хуудасны сорс кодыг харъя.

<?
function calculate_total ($quantity, $discount) {
global $cost;
global $tax;
$total_cost = ($cost * $quantity);
$total_cost = ($total_cost - (($total_cost/100) * $tax));
if (($total_cost < 300) AND ($discount)) {
print ("Таны \$$discount-н хєнгєлєлт хvчингvй учир нь нийт худалдааны єртєг $300-с доогуур.<p>");
}
if ($total_cost >= 300) {
$total_cost = $total_cost - $discount;
}

return $total_cost;
}
// end of the calculate_total function.
function calculate_payments ($total_cost, $number_payments = "12") {
$payments = round ($total_cost, 2)/ $number_payments;
$payments = sprintf ("%01.2f", $payments);
return $payments;
}

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<?php
$cost = 50.00;
$tax = 10.00;
if ($quantity) {
$quantity = abs($quantity);
$discount = abs($discount);
$total_cost = calculate_total ($quantity, $discount);
// print the results.
print "Та $quantity тооны барааг ширхэгийг нь \$$cost-р худалдан авлаа.\n<p>";
print "Татварын 10%-г оролцуулан, хєнгєлєлтийг хасаад худалдааны єртєг $";
printf ("%01.2f", $total_cost);
print ".\n<p>Та бараагаа 1 жилийн дотор сараар хувааж тєлбєл сарын $";
print (calculate_payments($total_cost));
print " байх болно.\n<p>";
} else {
print "Худалдан авах гитарын тоог оруулна уу.\n";
}
?>
</body>
</html>

Нэг анхаарах юм бол function дуудагдахаасаа ємнє бvтээгдсэн байх хэрэгтэй. Ихэнх РНР программистууд HTML хэсгийнхээ дээд талд function-аа бvтээгээд HTML дотроосоо дууддаг. Дээрх жишээнээс харна уу.

global $variable
гэж юу вэ?

Бид урьдын жишээнvvдээс харахад variable буюу argument-г РНР function луу шилжvvлэхэд утга нь зєвхєн тухайн function дотроо ажиллаж байсан. Харин global scope-г ашиглан хэд хэдэн function-ы хооронд нэг variable-г дамжуулан хэрэглэж болдог. Энэ нь олон дамжлагатай vйлдэл хийх програмыг хялбар болгоно.

function function_name ($argument) {
global $variable;
}

гэсэн байдлаар бичигдэнэ. Дээрх жишээн дээрээс харахад ийм байна.

<?
function calculate_total ($quantity, $discount) {

global
$cost;
global
$tax;

......

Тэгэхээр дээрх кодон доторх 2 function 2-уулаа $cost ба $tax variable-г хэрэглэх учраас ингэж global scope-г хэрэглэжээ.


function calculate_total (); < 1-дэх function
function calculate_payments (); < 2 дах function