PHP常量
- 常量是一种特殊变量,只允许初始化一次,不允许更新。
- 常量没有作用域限制。
- PHP常量命名是大写,不需要”$”并且依旧要遵守命名方式。
- 创建方式:
- define(常量名,常量值);无法在面向对象中使用,但是值允许用表达式
- const 常量名 = 值
<?php
//常量的创建,define(常量名,常量值可以为表达式);
//cosnt 常量名 = 值;
define('APP_PATH','app/admin');
const XIAOYU = '周小雨';
echo APP_PATH .'<br>' .XIAOYU.'<br>';
Class x{
//define不能创建类常量
//const可以船舰类常量
const JUNYU_URL = 'https://zxyy.me';
}
echo X::JUNYU_URL;
//define可以使用表达式值
define('XY_VALUE',1+2);
echo '<br>'.XY_VALUE;
PHP双引号对特殊字符的处理方式
PHP双引号内的变量常量会被解析出来;<?php
$test = 'xiaoyu';
//\是转义符在双引号中可以解析处变量等
echo "\$test的值是$test";
echo "\$test的值是{$test}为了避免变量解析出错推荐{}括住";
PHP数组
- 索引数组 键名是顺序数字的数组
关联数组 键名是自己写的那种可以是整数字符串
<?php
//索引数组创建
//方法一
$array = [1,2,3,4];
print_r($array);
echo '<br>';
//方法二
$array1[]='xiaoyu';
$array1[]='xiaochen';
$array1[]='xiaod';
echo '<pre>'.print_r($array1,true).'</pre>';
//方法三
$array2[0]='wo';
$array2[1]='shi';
$array2[2]='xiaoyu';
echo '<pre>'.print_r($array2,true).'</pre>';
//数组便利
foreach($array as $v){
echo $v.'<br>';
}
//将数组里面的值 赋值给对应的变量
//list语句
list($name1,$name2,$name3) = $array1;
echo "\$name1的值是{$name1}\$name2的值是{$name2}\$name3的值是{$name3}<br>";
//将数组转换为字符串implode函数
$str = implode(',',$array1);
var_dump($str);
//将字符串分割为数组函数
$arr = explode(',',$str);
echo '<br><pre>'.print_r($arr,true).'</pre>';
//关联数组键名采用语义化的字符串, 访问时不再依赖于元素在数组中的位置
$goods = ['id'=>1,'name'=>'笔记本','price'=>8000];
echo '<br><pre>' . print_r($goods, true) . '</pre>';
//关联数组遍历
foreach($goods as $v){
echo $v.'<br>';
}
//遍历时可以便利键名
foreach($goods as $k => $v){
echo $k.'=>'.$v.'<br>';
}
//关联数组中的键名转换为变量名 extract
extract($goods);
echo "id=>$id, name=>$name, price=>$price";
//独立变量组成关联数组 compact();
$username = "xiaoyu";
$password= "123456";
$user = compact('username','password');
echo '<br>';
var_dump($user);
//将关联数组转换为索引数组 array_values
$indexArr = array_values($user);
echo '<pre>' . print_r($user, true) . '</pre>';
echo '<pre>' . print_r($indexArr, true) . '</pre>';
//-------------------多维数组--------------------
$users = [
['id'=> 101, 'name'=> '小王', 'grade'=> 88],
['id'=> 102, 'name'=> '小张', 'grade'=> 78],
['id'=> 103, 'name'=> '小李', 'grade'=> 68],
];
//多维数组的访问
echo $users[2]['name'];
//便利二维数组
foreach($users as $v){
echo "id=>${v['id']},name=>${v['name']},id=>${v['grade']}<br>";
}
PHP分支控制
<?php
date_default_timezone_set('PRC');
$grade = 70;
if($grade>60 && $grade<80){
echo '及格'.'<br>';
}
$grade = 60;
if($grade>60 && $grade<80){
echo '及格'.'<br>';
}else{
echo '不及格'.'<br>';
}
if ($grade>=90 && $grade<=100) {
echo '优秀'.'<br>';
}elseif($grade>80 && $grade<90){
echo '良好'.'<br>';
}else{
echo '还需要努力';
}
$week = date('w',time());
switch($week){
case 0:
$rq = "星期天";
break;
case 1:
$rq = "星期一";
break;
case 2:
$rq = "星期二";
break;
case 3:
$rq = "星期三";
break;
case 4:
$rq = "星期四";
break;
case 5:
$rq = "星期五";
break;
case 6:
$rq = "星期六";
break;
default:
$rq = "你所在的时间线发生了变动";
break;
}
echo '<br>'.$rq;