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><?phpheader('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笔记就到这吧,继续加油!
PHP:案例2--商品价格计算(案例分析+设计思路+知识点讲解+源码+结果展示)相关推荐
- 双色球软件设计思路及初步源码
软件功能: 一.双色球共1107568注二等奖,这些注里可以过滤掉的垃圾号如下: 1.六连号.五连号.四连号.三连号.甚至二连号 2.全偶数.全气数奇数 3.已经开过的奖号 4.已经开过的奖号的五重号 ...
- 2018年排名Top 100的Java类库——在分析了277,975份源码之后得出的结论
最近,OveOps公布了The Top 100 Java Libraries in 2018 - Based on 277,975 Source Files,Hollis查看了这份榜单,做了翻译和补充 ...
- java毕业生设计选课系统计算机源码+系统+mysql+调试部署+lw
java毕业生设计选课系统计算机源码+系统+mysql+调试部署+lw java毕业生设计选课系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...
- java毕业生设计在线多媒体学习社区的设计与实现计算机源码+系统+mysql+调试部署+lw
java毕业生设计在线多媒体学习社区的设计与实现计算机源码+系统+mysql+调试部署+lw java毕业生设计在线多媒体学习社区的设计与实现计算机源码+系统+mysql+调试部署+lw 本源码技术栈 ...
- JAVA毕业设计高校教师个人主页网站设计与实现计算机源码+lw文档+系统+调试部署+数据库
JAVA毕业设计高校教师个人主页网站设计与实现计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计高校教师个人主页网站设计与实现计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: ...
- JAVA毕业设计BS架构考研交流学习平台设计与实现计算机源码+lw文档+系统+调试部署+数据库
JAVA毕业设计BS架构考研交流学习平台设计与实现计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计BS架构考研交流学习平台设计与实现计算机源码+lw文档+系统+调试部署+数据库 本源码技 ...
- web前端期末大作业:文化网站设计——中国风文化html源码(6个页面) HTML+CSS+JavaScript...
web前端期末大作业:文化网站设计--中国风文化html源码(6个页面) HTML+CSS+JavaScript 期末作业HTML代码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到 ...
- 计算机毕业设计Java小区生活服务平台的设计与实现(源码+系统+mysql数据库+Lw文档)
计算机毕业设计Java小区生活服务平台的设计与实现(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java小区生活服务平台的设计与实现(源码+系统+mysql数据库+Lw文档) 本源码技术栈 ...
- 计算机毕业设计ssm二手车交易平台设计6b7sc系统+程序+源码+lw+远程部署
计算机毕业设计ssm二手车交易平台设计6b7sc系统+程序+源码+lw+远程部署 计算机毕业设计ssm二手车交易平台设计6b7sc系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S架构 ...
最新文章
- 【多标签文本分类】Initializing neural networks for hierarchical multi-label text classification
- ML之Clustering:关于Clustering进阶的那些不可告密的事
- ASP.NET中新建Web网站并部署到IIS上(详细图文教程)
- 合肥工业大学宣城校区大学生创新创业训练项目申报书:“基于Spark平台的人工智能知识的知识图谱构建”...
- SAP Commerce Extension的Web应用启动问题
- 前端学习(2687):重读vue电商网站8之设置弹框提示组件
- 多位博士毕业去了三四流高校,现在怎么样了?
- (原创)日志处理(修改)
- windows下CodeBlocks TMD-GCC安装及配置
- 数模美赛常用算法matlab代码总结+数模大礼包
- 人工智能在5G网络中的应用
- 台式计算机 无线已连接 无法上网,WiFi已连接不可上网怎么办
- 微录音--Android通话录音(vluyin-callrecorder)一款安卓通话录音软件
- Sub-center ArcFace
- 非线性发展方程定解问题
- seckill配置补发
- golang反射修改结构体字段(reflect.flag.mustBeAssignable using value obtained using unexported field) 2020.8.18
- GSAP教程之Tween详解
- 【软件】网梭浏览器v2.4.7 思路
- 2020年高教社杯全国大学生数学建模竞赛 C题思路