PHP中的变量、数组和流程控制
PHP 常量
概述
- 常量,是一种特殊变量,其命名不需要使用“$”符号,但是名称依然要遵循PHP变量的标识符规范;
- 常量,是仅允许初始化一次(不允许更新)的“只读变量”;
- 常量,没有作用域的限制,一般常用来表示状态或数据共享;
- 常量的创建包括,使用
define()
函数创建变常量,define()
函数创建的常量,其值可以是表达式;若使用const
指令创建常量,其值只能是字面量;
运行效果
单、双引号的区别
PHP 数组
概述
- 通过字面量创建,也就是将多个数组元素,放在一个对中括号[]内中,元素之间使用逗号分隔;
- 通过赋值的方式,向数组中逐个添加/追加到数组中;
- 根据数组的索引不同,可以将数组分为“索引数组”和“关联数组”;
- 索引数组,是指数组的元素“键名”是数值的数组。如果索引数组的“键名”是连续的数值,则键名可以省略索引数组的默认是从0 开始的;
- 关联数据组,是指数组的元素“键名”是字符串的数组(键名的命名依然遵循PHP的命名规范)。
- 除了一维数组外,我们还会常用到二维数组,你可将他看做一个表格,外面的索引代表“行”,被包含数组的索引就是“列”;
运行效果
PHP 流程控制-分支控制
概述
if
单分支;if - else
双分支;if -elseif -else
多分支;switch-case -break
多分支简化,多用于单值判断;
运行效果
PHP代码
<?php
/*1-PHP中的常量:
1.1常量,是一种特殊变量,其命名不需要使用“$”符号,但是名称依然要遵循PHP变量的标识符规范;
1.2常量,是仅允许初始化一次(不允许更新)的“只读变量”;
1.3常量,没有作用域的限制,一般常用来表示状态或数据共享;
1.4常量的创建:
1.4.1 使用define()函数创建变常量,define()函数创建的常量,其值可以是表达式;
1.4.2 使用const 指令创建常量,其值只能是字面量;
**/
//示例 1.1 define() 的使用
$version = '7.3';
//其常量赋值使用了表达式表示
define('PHP_Version', 'Hello PHP! The Version is' . $version);
echo 'PHP_Version:' . PHP_Version . '<br>';
//其常量赋值使用字面量表示
define('PHP_Version2', 'Hello PHP! The Version is NULL!');
echo 'PHP_Version2:' . PHP_Version2 . '<br>';
//示例 1.2 const 的使用
const CONST_Ver='const 创建字面量';
echo CONST_Ver.'<br>';
/*2-PHP中单引号与双引号的使用
2.1单引号,内部的值会按照字面量,进行输出;
2.2双引号,内部的值,将会被解析,如果值中存在变量名或者特殊字符,则会被解析出来;
*/
//示例 2.1 单引号
$str='Ant蚂蚁体育';
echo '$str 是一个体育品牌'.'<br>';
//示例 2.2 双引号
$str2='Ant蚂蚁体育';
echo "$str2 是一个体育品牌".'<br>';
//建议写法
echo "{$str2}是一个体育品牌".'<br>';
/*3-PHP中数组的创建
3.1通过字面量创建,也就是将多个数组元素,放在一个对中括号[]内中,元素之间使用逗号分隔;
3.2通过赋值的方式,向数组中逐个添加/追加到数组中;
3.3根据数组的索引不同,可以将数组分为“索引数组”和“关联数组”;
3.3.1 索引数组,是指数组的元素“键名”是数值的数组。如果索引数组的“键名”是连续的数值,则键名可以省略
索引数组的默认是从0 开始的;
3.3.2 关联数据组,是指数组的元素“键名”是字符串的数组(键名的命名依然遵循PHP的命名规范)。
3.4除了一维数组外,我们还会常用到二维数组,你可将他看做一个表格,外面的索引代表“行”,被包含数组的索引就是“列”;
* */
// 示例 3.1 字面量创建数组
//索引数组
$array_str=[1,2,3,4,5];
//通过pre标签,将数组格式输出
echo '<pre>'.print_r($array_str,true).'</pre><br>';
echo '<br>';
//关联数组
$array_link=['link_id'=>106,'link_type'=>'JavaScript','link_name'=>'jQuery'];
echo '<pre>'.print_r($array_link,true).'</pre><br>';
echo '<br>';
// 示例 3.2 赋值创建数组
//索引数组
$array_assign[]=107;
$array_assign[]='PHP';
$array_assign[]='laravel';
echo '<pre>'.print_r($array_assign,true).'</pre><br>';
echo '<br>';
//关联数组
$array_links['links_id']=109;
$array_links['links_type']='HTML/CSS';
$array_links['links_name']='JiUI';
echo '<pre>'.print_r($array_links,true).'</pre><br>';
echo '<br>';
// 示例 3.3 访问数组中元素,$array_assign[]数组的第三个元素。
//访问索引数组元素
echo $array_assign[2].'<br>';
echo '<br>';
//访问关联数组元素
echo $array_links['links_name'].'<br>';
echo '<br>';
// 示例 3.4 遍历数组
//遍历索引数组
echo '遍历索引数组<br>';
foreach ($array_assign as $value){
echo $value.','.'<br>';
}
echo '<br>';
//遍历关联数组
echo '遍历关联数组<br>';
foreach ($array_links as $values){
echo $values.','.'<br>';
}
echo '<br>';
echo '遍历关联数组(含"元素键名")<br>';
foreach ($array_links as $key=> $values){
echo "{$key}=>{$values}<br>";
}
echo '<br>';
// 示例 3.5 通过 list()和extract()语句,将数组中的元素,转换为单独的变量
//索引数组
echo '索引数组,转换为变量<br>';
list($id,$type,$name)=$array_assign;
echo "语言ID:{$id},语言类型:{$type},语言名称:{$name}<br>";
echo '<br>';
//关联数组
echo '关联数组,转换为变量<br>';
extract($array_links);
//变量名默认是“关联数组”键名
echo "语言ID:{$links_id},语言类型:{$links_type},语言名称:{$links_name}<br>";
echo '<br>';
// 示例 3.6 通过compact(),将变量转换为一个关联数组
echo '通过compact(),将变量转换为一个数组<br>';
$server_ip='192.168.1.76';
$server_port=':8086';
$server_str = compact('server_ip','server_port');
echo '<pre>'. print_r($server_str,true) . '</pre>';
// 示例 3.7 通过array_values(),将关联数组转化为索引数组
$intArray=array_values($array_links);
echo '<pre>'. print_r($array_links,true) . '</pre>';
echo '<br>';
// 示例 3.8 通过implode(),将数组拉平转化为字符串;
//索引数组
$assign_str=implode('#',$array_assign);
echo $assign_str.'<br>';
echo '<br>';
// 示例 3.9 通过explode(),将字符串转化为数组;
//索引数组
$language_code='zh-CN,en-US,en-GB';
$array_languagecode=explode(',',$language_code);
echo '<pre>'.print_r($array_languagecode,true).'</pre>';
echo '<br>';
// 示例 3.8多维度数组
//$account_info的索引是二维数组的“行”,嵌套数组的索引是二维数组的“列”;
$account_info=[
['code'=>'P1','type'=>'部门主管','name'=>'小陈'],
['code'=>'P2','type'=>'职员','name'=>'小李'],
];
//访问二数组的某个值
echo $account_info[1]['name'], '<br>';
//遍历二维数组内容元素
foreach ( $account_info as $item) {
echo "账号编码: {$item['code']},账号类型:{$item['type']},账号所有人:{$item['name']}<br>";
}
echo '<br><hr>';
/*4-流程控制之 分支控制
4.1 if 单分支;
4.2 if - else 双分支;
4.3 if -elseif -else 多分支;
4.4 switch-case -break 多分支简化,多用于单值判断;
* */
//通用变量设置
const GOOD_NAME='青椒';
$number = 4;
$discount = 1.0;
$price = 4.68;
// 示例 4.1 if单分支
$number = 12;
if($number>=10){
$discount = 0.9;
}
$total=$price*$number*$discount;
echo '商品名称:'.GOOD_NAME.',商品单价:'.$price.'元/公斤,
当前购买数量:'.$number.',当前折扣:'.$discount.',需支付总额:'.$total.'元';
echo '<br><br>';
// 示例 4.2 if - else 双分支
$number = 8;
if($number>=10){
$discount = 0.9;
}else{
$discount = 1.0;
}
$total=$price*$number*$discount;
echo '商品名称:'.GOOD_NAME.',商品单价:'.$price.'元/公斤,
当前购买数量:'.$number.',当前折扣:'.$discount.',需支付总额:'.$total.'元';
echo '<br><br>';
// 示例 4.3 if -elseif -else 多分支
$number = 22;
if($number>10 && $number<20){
$discount = 0.9;
}elseif($number>=20 && $number<30){
$discount = 0.8;
}elseif($number>30){
$discount = 0.7;
}else{
$discount = 1.0;
}
$total=$price*$number*$discount;
echo '商品名称:'.GOOD_NAME.',商品单价:'.$price.'元/公斤,
当前购买数量:'.$number.',当前折扣:'.$discount.',需支付总额:'.$total.'元';
echo '<br><br>';
// 示例 4.4 switch-case -break 多分支简化,多用于单值判断
$number=35;
switch ($number){
case $number>10 && $number<20;
$discount = 0.9;
break;
case $number>=20&& $number<30;
$discount=0.8;
break;
case $number>=30;
$discount=0.7;
break;
default:
$discount = 1.0;
}
$total=$price*$number*$discount;
echo '商品名称:'.GOOD_NAME.',商品单价:'.$price.'元/公斤,
当前购买数量:'.$number.',当前折扣:'.$discount.',需支付总额:'.$total.'元';
echo '<br><br>';