PHP:案例2--商品價格計算(案例分析+設計思路+知識點講解+原始碼+結果展示)
一、案例分析
1、需求分析
- 若使用者在一個全場8折的網站中購買了2斤香蕉、1斤蘋果和3斤橘子,它們的價格分別為7.99元/斤、6.89元/斤、3.99元/斤,那麼如何使用PHP程式來計算此使用者實際需支付的費用呢?
- 下面通過PHP中提供的變數與常量、算術運算子以及賦值運算子等相關知識來實現PHP中的商品價格計算。
2、設計思路
- 使用PHP提供的變數儲存使用者所購買商品的名稱、價格及數量。
- 由於網站中所有商品的折扣相同,所以使用PHP提供的常量來儲存。
- 分別計算使用者購買香蕉、蘋果和橘子的價格。
- 計算打折後所有商品的總價格。
- 以表格的形式顯示使用者所購買的商品資訊及該使用者實際需要支付的費用。
二、案例展示
三、知識點講解
1、註釋
註釋是對程式程式碼的解釋和說明,使程式碼更易於閱讀與維護,在解析時會被解析器忽略。
- 在PHP中,最常用的兩種註釋分別為:單行註釋“//”和多行註釋“/*……*/”。
- 需要注意的是,多行註釋可以巢狀單行註釋,但是不能再巢狀多行註釋。
2、識別符號
在網站開發過程中,經常需要在程式中定義一些符號來標記一些名稱,如:類名、方法名、函式名、變數名等,這些符號被稱為識別符號。
在PHP中,定義識別符號要遵循一定的規則,具體如下:
- 識別符號只能由字母、數字和下劃線組成。
- 識別符號可以由一個或多個字元組成,必須以字母或下劃線開頭。
- 當識別符號用作變數名時,區分大小寫。
- 若識別符號由多個單片語成,那麼應使用下劃線進行分割,如:user_name。
- 合法識別符號:itcast、itcast88、_itcast、username、password等。
- 非法識別符號:66itcast、it cast、123、@itcast等。
3、關鍵字
關鍵字是程式語言裡事先定義好並賦予了特殊含義的單詞,也稱作保留字。如:class關鍵字用於定義類,echo用於輸出資料,function用於定義函式。
PHP5中所有的關鍵字
and | or | Xor | __FILE__ | exception |
__LINE__ | array() | As | break | case |
class | const | continue | declare | default |
die() | do | echo | else | elseif |
empty() | enddeclare | endfor | endforeach | endif |
endswitch | endwhile | eval() | exit() | extends |
for | foreach | function | global | if |
include | include_once | isset() | list() | new |
| require | require_once | return | static |
switch
| unset() | use
| var
| while
|
__FUNCTION__ | __CLASS__ | __METHOD__ | final | php_user_filter |
interface | implements | extends
| public | private |
protected | abstract | clone | try | catch |
throw | this |
|
|
|
在使用上面列舉的關鍵字時,需要注意以下兩個地方:
- 關鍵字不能作為常量、函式名或類名使用。
- 關鍵字雖然可作為變數名使用,但是容易導致混淆,不建議使用。
4、變數
變數的概念:變數就是儲存可變資料的容器。
變數的命名:變數是由$符號和變數名組成的,其中變數名的命名規則與識別符號相同。
例如:
- 合法變數:$test、$_test、$age、$_name
- 非法變數:$123、$*math、$@u、$6_it
變數的宣告:由於PHP是弱型別語言,所以變數不需要事先宣告,就可以直接進行賦值使用。
變數的賦值:PHP中的變數賦值分為兩種,一種是預設的傳值賦值,另一種是引用賦值。
(1)傳值賦值——就是指整個原始表示式的值被賦予到目標變數。
$age = 12;
$num = $age;
$age = 100;
echo $num;
- 當變數$age的值修改為100時,$num的值依然是12 。
- 當對變數名不確定的情況時,可以使用{}來對變數進行界定,這是由於“{”無法被轉義,只有“$”緊挨著“{”時才會被識別。
(2)引用賦值——就是在要賦值的變數前新增“&”符號。
$age = 12;
$num = &$age;
$age = 100;
echo $num;
- 當變數$age的值修改為100時,$num的值也隨之變為100。
- 由於引用賦值的方式相當於給變數起一個別名,當一個變數的值發生改變時,另一個變數也隨之變化。
5、常量
常量的概念:常量是指在指令碼執行過程中值始終儲存不變的量。
它的特點是一旦被定義就不能被修改或重新定義。
例如: 數學中常用的圓周率π就是一個常量,其值就是固定且不能被改變的。
PHP中通常使用define()函式或const關鍵字來定義常量。
(1)define()函式
define('CON','itcast',true);
echo CON;
echo con;0
- define()函式的第一個參數列示常量的名稱
- define()函式的第二個參數列示常量值
- define()函式的第三個參數列示常量對大小寫是否敏感(預設值為false)
- 當為true時表示不敏感,如在上述例項中輸出值都是itcast。
值得一提的是,輸出常量還可使用constant()函式,其用法如下所示:
define('CON','itcast');
echo constant('CON');
- 要想使用constant()函式獲取常量的值,只需將其唯一的引數設為常量的名稱即可。
(2)const關鍵字
const pai=3.14;
echo pai;
- 使用const關鍵字定義了一個名為pai,值為3.14的常量。
6、算術運算子
在數學運算中最常見的就是加減乘除運算,也被稱為四則運算。PHP中的算術運算子就是用來處理四則運算的符號,這是最簡單、最常用的運算子號。
算術運算子及範例
運算子 | 意義 | 範例 | 結果 |
+ | 加 | 5+5 | 10 |
- | 減 | 6-4 | 2 |
* | 乘 | 3*4 | 12 |
/ | 除 | 5/5 | 1 |
% | 取模(即算術中的求餘數) | 7%5 | 2 |
在實際應用過程中還需要注意以下兩點:
- 四則混合運算時,運算順序要遵循數學中“先乘除後加減”的原則。
- 在進行取模運算時,運算結果的正負取決於被模數(%左邊的數)的符號,與模數(%右邊的數)的符號無關。
- 如:(-8)%7 = -1,而8%(-7)= 1。
7、賦值運算子
賦值運算子是一個二元運算子,即它有兩個運算元。總是把基本賦值運算子(=)右邊的值賦給左邊的變數或常量。
- “=”:表示賦值運算子,而非數學意義上的相等的關係。
賦值運算子及範例
運算子 | 意義 | 範例 | 結果 |
= | 賦值 | $a=3;$b=2; | $a=3;$b=2; |
+= | 加等於 | $a=3;$b=2;$a+=$b; | $a=5;$b=2; |
-= | 減等於 | $a=3;$b=2;$a-=$b; | $a=1;$b=2; |
*= | 乘等於 | $a=3;$b=2;$a*=$b; | $a=6;$b=2; |
/= | 除等於 | $a=3;$b=2;$a/=$b; | $a=1.5;$b=2; |
%= | 模等於 | $a=3;$b=2;$a%=$b; | $a=1;$b=2; |
.= | 連線等於 | $a='abc';$a .= 'def'; | $a='abcdef' |
在PHP中一條賦值語句可對多個變數進行賦值。
$first;
$second;
$third;
$first = $second = $third = 3; //為三個變數同時賦值
- 賦值語句的執行順序是從右到左,即先將3賦值給變數$third。
- 然後再把$third的值賦值給變數$second。
- 最後把變數$second的值賦值給變數$first,完成對三個變數的同時賦值。
除“=”外的其他運算子均為特殊賦值運算子,在使用過程中需要注意以下兩點:
(1)“+=”、“-=”、“*=”、“/=”、“%=”的用法類似,這裡以“+=”為例進行講解。
$a = 5;
$a += 4;
相當於:
$a = 5;
$a = $a + 4;
- “+=”:表示變數$a先與4進行相加運算。
- 然後再將運算結果賦值給變數$a。
- 最後變數$a的值為9。
(2)“.=”表示對兩個字串進行連線操作。
$str = 'welcome to ';
$str .= 'itcast';
相當於:
$str = 'welcome to ';
$str = $str. 'itcast';
- “.=”:表示變數$str先與“itcast”字串進行連線。
- 然後將連線後得到的新字串再賦值給變數$str。
- 最後變數$str的值為“welcome to itcast”。
四、案例實現
1、程式碼
<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<title>【案例2】商品價格計算</title>
</head>
<body>
<?php
header('Content-type: text/html; charset=utf-8');
const DISCOUNT =0.8;
//定義變數
//定義商品的名稱
$fruit1='香蕉';
$fruit2='蘋果';
$fruit3='橘子';
//定義商品的購買數量
$fruit1_num =2;
$fruit2_num =1;
$fruit3_num =3;
//定義商品的價格
$fruit1_price =7.99;
$fruit2_price =6.99;
$fruit3_price =3.99;
//計算各個商品的價格
$fruit1_total = $fruit1_num * $fruit1_price;
$fruit2_total = $fruit2_num * $fruit2_price;
$fruit3_total = $fruit3_num * $fruit3_price;
//計算所有商品的總價格 =(香蕉總價格+蘋果總價格+ 橘子總價格)* 商品折扣
$total = ($fruit1_total+$fruit2_total+$fruit3_total)*DISCOUNT;
//拼接商品資訊:Html頁面
$str="<table>";
$str .= "<tr><td>商品名稱</td><td>購買數量(斤)</td><td>商品價格(元/斤)</td></tr>";
$str .="<tr><td>{$fruit1}</td><td>{$fruit1_num}</td><td>{$fruit1_price}</td></tr>";
$str .="<tr><td>{$fruit2}</td><td>{$fruit2_num}</td><td>{$fruit2_price}</td></tr>";
$str .="<tr><td>{$fruit3}</td><td>{$fruit3_num}</td><td>{$fruit3_price}</td></tr>";
$str .= "<tr><td colspan='3'>商品折扣:<span>". DISCOUNT."</span></td><tr>";
$str .= "<tr><td colspan='3'>打折後購買商品總價格:{$total}元</td></tr>";
//輸出商品的資訊
$str .="</table>";
echo $str;
?>
</body>
</html>
2、輸出結果
以上是PHP案例2的全部內容,希望可以幫助到大家,今日份PHP筆記就到這吧,繼續加油!
相關文章
- 好程式設計師雲端計算培訓分享msyql知識點講解程式設計師
- 雲端計算學習素材、課件,msyql知識點講解
- 計算機網路知識點總結計算機網路
- 設計模式:用實際案例講解工廠模式設計模式
- 購物車自動計算商品總價格
- EOS原始碼分析(3)案例分析原始碼
- 計算機網路知識點計算機網路
- 京東商品列表介面,商品銷量排序介面,商品價格排序介面程式碼展示排序
- 微商品牌代理結算系統開發案例
- 計算機網路知識點總結(一)-物理層計算機網路
- 玩法設計的結構化分析思路
- JavaScript設計模式系列二之建造者模式(附案例原始碼)JavaScript設計模式原始碼
- PHP程式設計師遇到問題的冷門知識點PHP程式設計師
- Java程式設計常用計算機小知識Java程式設計計算機
- MySQL EXPLAIN結果集分析 - 附帶大量案例MySqlAI
- 案例詳解 | 基於Embedding的特徵安全計算特徵
- 好程式設計師雲端計算教程分享Mysql技術知識點程式設計師MySql
- 結合案例深入解析模板方法設計模式設計模式
- 常用的資料分析方法及案例講解
- 知識點:樹中結點的度以及葉子結點(度為0的結點)的計算
- LevelDB系統結構與設計思路分析
- 計算機網路基礎知識總結計算機網路
- 軟體設計師:計算機系統知識計算機
- Mybatis 原始碼解讀-設計模式總結MyBatis原始碼設計模式
- vertical-align知識點講解
- R資料分析:如何簡潔高效地展示統計結果
- 業務程式碼程式設計陷阱案例 - jaxenter程式設計
- JavaScript網頁設計案例JavaScript網頁
- Java開發程式設計師:JVM相關的知識講解Java程式設計師JVM
- 《響應式程式設計(Reactive Programming)介紹》文章總結與案例分析程式設計React
- 計組知識點
- 【筆試】計算機網路知識點整理筆試計算機網路
- 設計模式常見面試知識點總結(Java版)設計模式面試Java
- 通用點贊設計思路
- 乾貨:計算機網路知識總結計算機網路
- Android Fragment用法知識點的講解AndroidFragment
- Thread執行緒知識點講解thread執行緒
- Linux Shell指令碼程式設計while語句案例Linux指令碼程式設計While