0107作业 常量,数组知识,分支控制
常量的创建与访问
1.常量创建两种方式
define()
和const
define()
创建常量可以用表达式,const
只能用直接量。
在类里面创建常量不能用define()
只能用const
<?php
define('pai',3.14);
const myname = 'RK007';
echo pai.myname.'<br>';
//define可以用表达式创建常量
$domain = 'php.cn';
define('MY_EMAIL', 'admin@' . $domain);
echo MY_EMAIL.'<br>';
//const不能使用表达式创建常量
//const abc = 'admin@'.$domain ;
class A
{
// const:可以创建类常量
const NATION = 'CHINA';
// define('USER_NAME', 'admin'); define()不能创建类常量
}
echo A::NATION, '<br>'; //A::NATION 类常量可以这样调用
单双引号做用异同
单引号: 内部的值,按字面量的形式进行处理
双引号: 内部的值, 将被解析,如果值是变量名或者特殊字符,会被解析出来
索引数组与关联数组的常用操作
数组初始化方法,打印数组方法
<?php
//数组知识 索引数组 和 关联数组
$arr1 =[1,2,3]; // 索引数组
//$arr1[0] = 1;
//$arr1[1] = 2;
//$arr1[2] = 3; 逐个初始化
//相当于$arr1[0=>1,1=>2,2=>3];
$arr3[1]=1; $arr3[3]=3; $arr3[5]=5;
//创建一个关联数组
$arr2=['a1'=>'abc','b1'=>'bcd','c1'=>'cde'];
echo $arr1[0].'<br>';
echo $arr2['c1'].'<br>';
echo '<div>'. print_r($arr1).'</div>'; // 不显示
echo '<div>'. print_r($arr3,true).'</div>';
var_dump($arr3);
echo '<br>';
//把数组中的值赋给一些变量 用list(); 只用于数字索引的数组,且假定数字索引从 0 开始。
list($id, $name, $email) = $arr1;
echo "id=>$id, name=>$name, email=>$email <br>";
list($id, $name, $email) = $arr2;
echo "id=>$id, name=>$name, email=>$email <br>"; //关联数组不能打印
//“拉平”数组
$arr4 = array('Hello','World!','I','love','CHINA!');
echo implode(",",$arr4).'<br>';
echo implode($arr4)."<br>";
将一个字符串转化成索引数组用exlode()
<?php
// 将一个字符串,转换成索引数组 用explode()
$str = 'html,css,js,php,laravel';
$str2 ='I love you';
$arr = explode(',', $str);
$arr2 = explode(' ', $str2);
echo '<pre>' . print_r($arr, true) . '</pre>';
print_r($arr2);
foreach()遍历
关联数组转换为变量。
关联数组转换为索引数组
<?php
$products1 = ['id'=>100, 'name'=> 'phone', 'price'=>5000];
// foreach()遍历
foreach ($products1 as $value) {
echo $value , '<br>'; //直接输出值
}
foreach ($products1 as $key=>$value) {
echo "['$key'] => $value <br>"; //键和值对应输出
}
echo '<br>';
//关联数组转换为变量
extract($products1);
echo "$id,$name,$price";
//关联数组转换为索引数组,直接用 array_values()
echo '<pre>' .print_r($arr05,true) .'</pre>';
$arr05 =array_values($products1);
echo '<pre>' .print_r($arr05,true) .'</pre>';
多维数组,主要学习二维数组(数组的元素也是数组)
<?php
//二维数组
$array06 =[
[1,2,3] ,
[4,5,6] ,
[7,8,9]
] ;
$array07 =[
['id'=>100,'name'=>'a','score'=>60],
['id'=>101,'name'=>'b','score'=>60],
['id'=>102,'name'=>'c','score'=>60],
];
echo $array06[1][1].'<br>';
echo $array07[0]['name'],'<br>'; //访问某一个具体元素
分支结构(选择结构)
三种基本的结构,顺序,分支,循环。if
单分支if else
双分支if elseif
多分支switch case
简化多分支
<?php
$count = 5;
$price =10;
$discount =0.8;
switch ($discount) {
case 1:
$total = $count * $price *1;
break;
case 0.9:
$total = $count * $price *0.9;
break;
case 0.8:
$total = $count * $price *0.8;
break;
case 0.7:
$total = $count * $price *0.7;
break;
default:
exit('不支持的折扣率');
}
echo "购买数量: $count, 总金额: $total, 折扣率: $discount <hr>";
小结
学习本节数组和分支知识。
(1)常量:define() ,const;
(2)单双引号功能异同,(双引号内可以解析变量,特殊字符)
(3)索引数组,关联数组。
3.1索引数组赋值给一些变量,list()
3.2拉平数组implode()
3.3字符串转数组explode()
3.4遍历数组foreach()
3.5关联数组转索引数组array_value()
3.6关联数组转变量 extract()
(4)二维数组
(5)分支结构,switch,最多用于单值判断。
在学习中要理清楚思路,一般学习一个新知识点思路是:
1.是什么,以什么形式存在,有什么用。
2.怎么实现。
3.要注意的问题。
比如,键为字符串的是关联数组,关联数组键名符合PHP命名规范。
关联数组常用操作是,初始化,取值,遍历,可以转换为变量。
关联数组初始化举例:$arr1 =['id'=>1,'name'=>'xiaoming','address'='CHINA'];
……
每个知识点首先了解基本功能,也要多思考,多练习。