PHP常量
可以看做是一个特殊的变量,常量在脚本执行期间值不能改变
常量的命名规范同PHP标识符的命名规范相同:
(1)由字母、数字、下划线组成,且不能以数字开头
(2)区分大小写,推荐使用大写字母命名
(3)两个以上的单词使用
_
分隔或使用驼峰命名法常量的范围是全局的。不用管作用区域就可以在脚本的任何地方访问常量。
常量的定义
序号 | 方式 | 描述 |
---|---|---|
1. | define() |
可定义常量,在类中不可使用,可使用表达式作为值 |
2. | const |
可定义常量,在类中可以使用,仅能使用字面量作为值 |
使用:通过常量名可直接获取常量的值
示例与运行结果
<?php
//正确的常量定义
define('APP_NAME','Android APP');//等同于const APP_NAME='Android APP';
echo APP_NAME.'<br />';
define('_EMAIL','123@163.com');//等同于const _EMAIL='123@163.com';
echo _EMAIL.'<br />';
define('USER_HOST','http://'._EMAIL);
echo USER_HOST.'<br />';
class A{
const CLASS_NAME = 'class A';
}
echo A::CLASS_NAME.'<br />';
//错误的常量定义
define('12',12);
const USER_EMAIL = 'user_eamil'._EMAIL;
class A{
define('APP_NAME','Android APP');
}
单引号、双引号与转义字符
单引号:定义字符串,中间所有的内容都不会被解析,只会当做普通的字符进行输出
双引号:定义字符串,可以解析变量与转义字符
(1)如果不希望解析包含在其中的变量,可以在变量前添加
\
字符(2)如果变量后紧跟着英文字符,则变量需使用
{}
符号包裹转义字符:
字符 | 描述 |
---|---|
\\ |
代表\ 字符 |
\' |
代表一个单引号 |
\" |
代表一个双引号 |
\t |
制表符,代表四个空格 |
\n |
换行 |
- 示例与运行结果:
<?php
$str1='123';
$str2='1$str1\n';
echo $str2.'<br />';
$str3="hello $str1user";
echo $str3.'<br />';
$str4="hello {$str1}user";
echo $str4.'<br />';
$str5="hello ${str1}user";
echo $str5.'<br />';
$str6="hello \$str1";
echo $str6;
$str7="\"hello\tworld\"";
echo $str7;
数组
数组分类:
(1)索引数组:键名为数值,默认从0开始
(2)关联数组:键名为字符串,命名规范同PHP标识符的命名规范
数组的创建:
(1)使用array关键字:$变量名=array(元素1,元素2,元素3)或$变量名=array(‘键名1’=>元素1,’键名2’=>元素2,’键名3’=>元素3),若没有设置键名,默认创建的是索引数组
(2)使用中括号来包裹数据:$变量名=[元素1,元素2,元素3]或$变量名=[‘键名1’=>元素1,’键名2’=>元素2,’键名3’=>元素3],若没有设置键名,默认创建的是索引数组
(3)隐形定义数组:给变量增加一个中括号,系统自动变成数组。 $变量名[] = 值1或$变量名[键名] = 值 ,键名可以是数组或字符串,若没有设置键名,默认创建的是索引数组
访问数组元素:
(1)访问单个元素:$数组名[键名]
(2)遍历数组:foreach($数组名 as $k=>$v){}或foreach($数组名 as $v){},其中:$k代表数组的键名,$v代表元素的值
数组转变量:
(1)索引数组转变量:list($变量名)=$数组名,变量的位置与数组中元素的位置一一对应
(2)关联数组转变量:extract($数组名),键名会转换为变量名,元素值则为变量的值
(3)变量转关联数组:compact(‘键名1’,’键名2’),键名同变量名
数组转字符串: implode ( ‘连接符’ , $数组名 ) ,连接符表示将数据元素拼接在一起的符号
字符串转数组:explode ( ‘分隔符’ , 字符串 )
关联数组转索引数组: array_values (关联数组),该函数也可将不连续的索引数组重新设置为键名(下标)连续的数组
示例与执行结果:
<?php
//定义索引数组
$number_arr1 = array(1,2,3,4);//等同于$number_arr1 = array(0=>1,1=>2,2=>3,3=>4);
var_dump($number_arr1);
$number_arr2 = [5,6,7,8];//等同于$number_arr2 = [0=>5,1=>6,2=>7,3=>8];
var_dump($number_ar2);
$number_arr3[] = 9;//等同于$number_arr3[0] = 9;
$number_arr3[] = 10;
var_dump($number_arr3);
echo '-------------------------------------<br />';
//定义关联数组
$string_arr1 = array('name'=>'Lin','sex'=>'女','eamil'=>'123@qq.com');
var_dump($string_arr1);
$string_arr2 = ['App_name'=>'php中文网','host'=>'php.cn'];
var_dump($string_arr2);
$string_arr3['date'] = '2020-01-07';
$string_arr3['week'] = 'TuesDay';
var_dump($string_arr3);
echo '-------------------------------------<br />';
//访问数组元素
echo $string_arr1['name'].'的年龄是'.$number_arr3[1].'<br />';
foreach($string_arr1 as $k=>$v){
echo $k.'的值为'.$v.'<br />';
}
echo '-------------------------------------<br />';
//数组转变量
list($age1,$age2,$age3,$age4) = $number_arr1;
echo $age1.','.$age2.','.$age3.','.$age4.'<br />';
extract($string_arr3);
echo $date.'是'.$week.'<br />';
echo '-------------------------------------<br />';
//变量转数组
$company = 'PHP中文网';
$address = '福建省福州市';
$string_arr4 = compact('company','address');
echo '-------------------------------------<br />';
//数组转字符串
$str1 = implode('>',$tring_arr4);
echo $str1.'<br />';
echo '-------------------------------------<br />';
//字符串转数组
$arr = explode('>',$str);
var_dump($arr);
echo '-------------------------------------<br />';
//关联数组转索引数组
$arr2 = array_values($string_arr);
var_dump($arr2);
if分支语句
- 按照条件执行代码片段
- 语法:
if(表达式) {语句}
,使用if语句时当表达式为真时,才执行语句;if(表达式) {语句} else{语句}
使用if-else语句时当表达式为真时执行if的语句,当表达式为假时执行else的语句;if(表达式){语句 }else if(表达式){语句}…else{语句}
,if…else if …else语句先判断if的表达式是否为真。若为假,则判断else if的表达式,依次进行判断,当某处表达式为真,则输出该处的语句。若上面条件都不为真,则输出else的语句 elseif
可以允许有多个,但if
和else
只能有一个,if
语句可以无限层地嵌套在其它if
语句中- 示例与运行结果:
<?php
$count = 1;
if($conut == 1){
echo 'count的值是1<br />';
}
echo '-------------------------------------<br />';
$count = 0;
if($conut == 1){
echo 'count的值是1<br />';
}else{
echo 'count的值不是1<br />';
}
echo '-------------------------------------<br />';
$count = 3;
if($conut == 1){
echo 'count的值是1<br />';
}else if($conut>1 && $count<4){
echo 'count的值是'.$count.'<br />';
}else{
echo 'count的值不是1<br />';
}
switch分支语句
- 基于不同条件执行不同动作
- 使用 Switch 语句可以避免冗长的 if..elseif..else 代码块,通常应用于单值判断
基本语法:
switch($变量){case 表达式/值:代码块;break;default:代码块;break;}
,首先对一个变量进行一次计算。将值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。示例与运行结果:
<?php
$status = 3;
switch($status){
case 1:
echo '提交成功';
break;
case 2:
echo '提交失败';
break;
default:
echo '状态错误';
}