php基础语法
一 php程序
1.php标记
开始标记中间写 PHP 代码
当解析一个文件时,PHP 会寻找起始和结束标记,也就是告诉php 开始和停止解析二者之间的代码。此种解析方式使得PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略
2.php代码
echo ----->可以输出一个或多个字符串,用逗号(,)隔开
print ----->只允许输出一个字符串
3.语句结束符 ;
4.注释
// ----->单行注释
/*
*/ ------>多行注释
二 php变量
1、声明变量
2.赋值运算符
=
3.变量命名规则
- 开头不能用数字
- 中间不能有空格
php标量类型介绍
一 php标量数据类型
echo 输出数据值,开发时使用
var_dump 可以打印数据类型和值,测试时使用
1.布尔型
布尔型通常用于条件判断
'; $y = false; var_dump($y); ?>
2.整型
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定: 十进制、十六进制、八进制
'; $number = 67; var_dump($number); echo '
'; $number = -322; var_dump($number); ?>3.浮点型
带小数部分的数字
'; $number = -88.23; var_dump($number); ?>
4 字符串
- 引号内的数据可以是单引号或双引号
- 字符串不用引号会报错
- 数字、浮点型、布尔型,用引号也属于字符串
'; $str = 'My name is ou yang'; var_dump($str); ?>
一个汉字三个长度
ps
这里说明一下单引号和双引号的区别
简而言之 就是双引号可以解析变量
在单引号的情况下,我们在第二个str变量中引入第一个str变量
发现显示出的还是$str
'; $str = '$str My name is ou yang'; var_dump($str); ?>
但是我们如果使用双引号来包裹第二个变量
'; $str = "$str My name is ou yang"; var_dump($str); ?>
就可以发现第一个变量被引入了
二 php复合数据类型
三 php特殊数据类型
'; $null =''; var_dump($null); echo '
'; $null = null; var_dump($null); ?>php数组类型
一 数组
1.空数组
2.索引数组
'; $arr = [ 'ooii', 'ww', 'y' ]; var_dump($arr); ?>
输出键为0的值
3.关联数组
自定义键
'ooii', //ooii这一值的键定义为qwe 'ww', 'y' ); var_dump($arr['qwe']); ?>
输出一整个数组
print_r
'ooii', 'ww', 'y' ); print_r($arr); ?>
看下print_r与var_dump的区别
第一行是print_r
第二行是var_dump
4.连接符
.
可以连接多个数据
echo 'wy is:' . $arr[qwe];
二.php多维数组
1.二维数组
'; var_dump($arr); ?>
2.三维数组
'欧阳', 'school' => 'PHP中文网', 'gongfu' => [ 'PHP', '小程序', 'layui', 'Thinkphp' ] ], [ 'name' => '西内', 'school' => 'PHP中文网', 'gongfu' => [ 'PHP', 'Thinkphp', 'Laravel', '实战项目' ] ], [ 'name' => '强灭绝', 'school' => 'PHP中文网', 'gongfu' => [ 'HTML', 'PHP', 'layui', 'Thinkphp' ] ] ]; print_r($arr) ?>
输出某一键值
echo $arr[0]['name'];
三.php 数组循环
1.foreach
'欧阳', 'ximen' => '西门', 'miejue' => '强灭绝' ); foreach ($arr as $v) { //as 是给予 $v是循环每次value的值 echo $v; echo '
'; } ?>2.key value的循环
我们可以通过num循环来体现一下
'欧阳', 'ximen' => '西门', 'miejue' => '强灭绝' ); $num=1; foreach ($arr as $v) { echo $v; $num=$num+1; echo $num; echo '
'; } ?>那么刚才循环的是值 我们看看能不能循环key
这里需要=>
'欧阳', 'ximen' => '西门', 'miejue' => '强灭绝' ); foreach ($arr as $k =>$v) { echo $k.$v; echo '
'; } ?>3.循环多维数组
'强欧阳', 'school' => 'PHP中文网' ], [ 'name' => '西门', 'school' => 'PHP中文网' ], [ 'name' => '强灭绝', 'school' => 'PHP中文网' ] ]; foreach ($arr as $k => $v) { print_r($v); echo '
'; } ?>'强欧阳', 'school' => 'PHP中文网' ], [ 'name' => '西门', 'school' => 'PHP中文网' ], [ 'name' => '强灭绝', 'school' => 'PHP中文网' ] ]; foreach ($arr as $k => $v) { echo $v['name'].$v['school']; echo '
'; } ?>这里可以看出循环先从外层数组开始
'强欧阳', 'school' => 'PHP中文网' ], [ 'name' => '西门', 'school' => 'PHP中文网' ], [ 'name' => '强灭绝', 'school' => 'PHP中文网' ] ]; foreach ($arr as $k => $v) { foreach($v as $vv){ echo $vv; echo '
'; } } ?>php条件判断
1、三元运算符 ? :
若str变量有值 则返回 i am ooii
否则error
$str='ooii'; echo $str ? 'i am ooii' : 'error';
$str=''; echo $str ? 'i am ooii' : 'error';
2.if
如果wy变量有值,则返回i am ooii
3. if else
wy变量为空,则返回 error
4. if elseif else
wyy有值,则返回yes
如果wy wyy的值都为空,则返回error
5.switch default
进行条件匹配
6.php8新特性 match
这里php版本需要到8
'啊啊啊', 'bbb' => '不不不', 'ccc' => '踩踩踩' }; ?>
与swtich区别
match 是表达式 要增加结束符号
match 可以返回给变量 或者直接输出
match 只支持单行表达式
match 匹配进行严格比较
php函数
一 函数介绍
1.函数判断
2.什么是函数
- 函数是一段可以重复执行的代码片断
- 函数是实现代码复用的重要手段。
- 函数是现代编程语言最重要的基本单元
- 函数永远是编程的核心工作
3.函数分类
根据函数的提供者(编写者),分为二类
- 系统函数: 编程语言开发者事先写好提供给开发者直接使用的
- 自定义函数: 用户根据自身需求,对系统功能进行扩展
二 系统函数
PHP 的真正力量来自它的函数:它拥有超过 1000个内建的函数
1.string字符串函数
'; //将字符串转化为大写 $miejue ='miejueshitai'; echo strtoupper($miejue); echo '
'; //将字符串分割为数组 $php='欧阳克,灭绝师太,西门大官人,天'; print_r(explode(',',$php)); echo '
'; //将字符串进行md5加密 $ximen ='西门大官人'; echo md5($ximen); ?>2.array数组函数
'; // 把数组元素组合为字符串 echo implode(',',$arr); echo '
'; //数组中是否存在指定的值 echo in_array('天',$arr); echo '
'; //删除数组中的最后一个元素 array_pop($arr); print_r($arr); ?>三 php自定义函数
1.函数的自定义语法
//创建函数 function fun_name(参数列表) { //函数体:由一条或多条语句组成,可以为空 }
- 必须使用关键字: function 声明
- 函数名称不区分大小写,多个单词推荐使用下划线连接
2.调用函数
3.函数参数
- 方法参数可以有默认值,有默认值可以不传值
- 方法必须以返回的方式,不要用echo 输出的方式
4.作用域
- php中,只有函数作用域和全局作用域
- 所有函数作用域中的变量,外部不可见
- 全局作用域声明变量,在函数中是可见的
运算符
一.php运算符
'; var_dump(120-80); echo '
'; var_dump( 120*80); echo '
'; var_dump(120/80); echo '
'; var_dump( 120%80); echo '
'; $num = 120; var_dump( $num++); echo '
'; var_dump( $num--); echo '
'; var_dump( ++$num); echo '
'; var_dump(--$num); echo '
'; var_dump(120.80); echo '
'; $var1 ='PHP讲师:'; $var2 ='欧阳'; var_dump( $var1 .$var2);- 两个变量连接,没问题
- 一个变量和字符串,没问题
- 一个变量连接整型,必须在整型前加个空格
二 php赋值运算符
'; $int += 30; var_dump( $int); echo '
'; $int = $int + 30; var_dump($int); echo '
'; $int -= 30; var_dump( $int); echo '
'; $int *= 30; var_dump( $int); echo '
'; $int /= 30; var_dump( $int); echo '
'; $int %= 30; var_dump( $int); echo '
'; $int .= 30; var_dump( $int);三 php比较运算符
100 ); echo '
'; var_dump(100>90); echo '
'; var_dump( 100 >110 ); echo '
'; var_dump( true >false ); echo '
'; var_dump('php'>'php'); echo '
';1.==等于
'; var_dump( true =='true'); echo '
';这是不判断类型的 只判断值
2.===恒等于
'; var_dump( true ==='true'); echo '
';判断类型 判断值
四 php逻辑运算符
1. and和&&
两个真 返回真
一个假 返回假
'; var_dump( true && true ); echo '
'; var_dump( true and false ); echo '
'; var_dump( false and false ); echo '
';2.or和||
一个真,返回真。
两个真,返回真。
两个假,返回假
'; var_dump( true||true ); echo '
'; var_dump( true or false ); echo '
'; var_dump( false or false ); echo '
';3.xor
一个真、返回真。
两个真,返回假。
两个假,也返回假
'; var_dump( true xor true ); echo '
'; var_dump( true xor false ); echo '
'; var_dump(false xor false ); echo '
';4 !取反
一个真、返回真。
两个真,返回假。
两个假,也返回假。
循环
1.while
'; $int ++; }
2.do while
'; $int ++; } $int = 1; do{ $int ++; echo $int; echo '
'; }while($int<10);while与do while的区别
我们把条件改成int<1 显而易见条件不满足
但是结果有2
我们看下是谁执行的
'; $int ++; echo 'while执行'; } $int = 1; do{ $int ++; echo $int; echo '
'; echo 'do while执行'; }while($int<1);因为while先执行
do while先判断
3.for
'; }
4。continue
- 结束当前循环,进入下次循环
- 在循环语句中使用 while for
'; }
5、break
- 结束循环
- 在循环语句中使用 while forswitch
- 可以跳出多层循环
'; }
类与对象
1、创建类
2、复合数据类型
3、对象
var_dump($ouyang == $miejue); echo '
'; var_dump($miejue == $ximen); echo '
'; var_dump($ouyang == $ximen);4、成员变量
- 成员变量,也叫: 类属性
name; echo '
'; echo $ouyang->school;5、成员方法
'; } public function fun2(){ return '姓名:ooii,学校:PHP中文网
'; } public function fun3(){ // 在类中使用伪变量: "$this" 引用当前类的成员变量 return '姓名:'.$this->name.',学校:'.$this->school.'
'; } public function fun4(){ // 在类中使用伪变量: "$this" 引用当前类的成员方法 return $this->fun3(); } } // 类实例化 $yangmi = new Teacher(); $yangmi->fun1(); echo $yangmi->fun2(); echo $yangmi->fun3(); echo $yangmi->fun4();- 类里成员有两种:属性(变量)和行为(方法)
4、魔术方法
构造方法
name = $name; $this->school = $school; } public function fun1(){ echo '姓名:灭绝师太,学校:PHP中文网
'; } public function fun2(){ return '姓名:灭绝师太,学校:PHP中文网
'; } public function fun3(){ // 在类中使用伪变量: "$this" 引用当前类的成员变量 return '姓名:'.$this->name.',学校:'.$this->school.'
'; } public function fun4(){ // 在类中使用伪变量: "$this" 引用当前类的成员方法 return $this->fun3(); } } // 实例化 $obj = new Teacher('aa','bb'); echo $obj->fun4();析构方法
name = $name; $this->school = $school; } public function fun1(){ echo '姓名:灭绝师太,学校:PHP中文网
'; } public function fun2(){ return '姓名:灭绝师太,学校:PHP中文网
'; } public function fun3(){ // 在类中使用伪变量: "$this" 引用当前类的成员变量 return '姓名:'.$this->name.',学校:'.$this->school.'
'; } public function fun4(){ // 在类中使用伪变量: "$this" 引用当前类的成员方法 return $this->fun3(); } // 析构方法 public function __destruct(){ echo '类执行完毕,要关闭了'; } } // 实例化 $obj = new Teacher('aa','bb'); echo $obj->fun3();类的三大特性
- 继承:可以让某个类型的对象获得另一个类型的对象的属性和方法
- 封装:指将客观事物抽象成类,每个类对自身的数据和方法实行保护
- 多态:指同一个实体同时具有多种形式,它主要体现在类的继承体系
1.继承
- extends 关键词继承父类
name = $name; $this->school = $school; } public function fun1(){ echo '姓名:灭绝师太,学校:PHP中文网
'; } public function fun2(){ return '姓名:灭绝师太,学校:PHP中文网
'; } public function fun3(){ // 在类中使用伪变量: "$this" 引用当前类的成员变量 return '姓名:'.$this->name.',学校:'.$this->school.'
'; } public function fun4(){ // 在类中使用伪变量: "$this" 引用当前类的成员方法 return $this->fun3(); } // 析构方法 public function __destruct(){ echo '类执行完毕,要关闭了'; } } // 子类代码复用 class PHPTeacher extends Teacher{ } // 实例化 $obj = new PHPTeacher('aa','bb'); echo $obj->fun3();2、封装
- public 默认的, 关键词定义类内、类外、子类都可见
- protected 关键词定义类内、子类可见,类外不可见
- private 关键词定义类内可见, 子类、类外不可见
name = $name; $this->school = $school; } protected function fun1(){ echo '姓名:灭绝师太,学校:PHP中文网
'; } private function fun2(){ return '姓名:灭绝师太,学校:PHP中文网
'; } public function fun3(){ // 在类中使用伪变量: "$this" 引用当前类的成员变量 return '姓名:'.$this->name.',学校:'.$this->school.'
'; } public function fun4(){ // 在类中使用伪变量: "$this" 引用当前类的成员方法 return $this->fun3(); } // 析构方法 public function __destruct(){ echo '类执行完毕,要关闭了'; } } // 子类代码复用 class PHPTeacher extends Teacher{ public function fun5(){ $this->fun1(); } public function fun6(){ $this->fun2(); } public function fun7(){ return $this->name; } public function fun8(){ return $this->school; } } // 实例化 $obj = new Teacher('西门大官人','PHP中文网'); echo $obj->fun1(); echo $obj->fun2(); echo $obj->name; echo $obj->school; $obj2 = new PHPTeacher('西门大官人','PHP中文网'); echo $obj2->fun1(); echo $obj2->fun2(); echo $obj2->fun5(); echo $obj2->fun6(); echo $obj2->fun7(); echo $obj2->fun8();3、多态
- 实现多态的前提是要先继承,在重写父类方法
name = $name; $this->school = $school; } protected function fun1(){ echo '姓名:灭绝师太,学校:PHP中文网
'; } private function fun2(){ return '姓名:灭绝师太,学校:PHP中文网
'; } public function fun3(){ // 在类中使用伪变量: "$this" 引用当前类的成员变量 return '姓名:'.$this->name.',学校:'.$this->school.'
'; } public function fun4(){ // 在类中使用伪变量: "$this" 引用当前类的成员方法 return $this->fun3(); } // 析构方法 public function __destruct(){ echo '类执行完毕,要关闭了'; } } // 子类代码复用 class PHPTeacher extends Teacher{ public function fun5(){ $this->fun1(); } public function fun6(){ $this->fun2(); } public function fun4(){ return '我是重写的方法'; } } $obj2 = new PHPTeacher('西门大官人','PHP中文网'); echo $obj2->fun4();命名空间
1、命名空间
- 解决全局成员的命名冲突问题
2、创建命名空间
- 命名空间使用 "namespace" 关键字声明
3、常量、函数、类
4、子命名空间
就跟windows目录一样\
namespace{ const NAME = '灭绝师太'; function php(){ } class phpcn{ } } namespace one{ const NAME = '西门大官人'; function php(){ } class phpcn{ } } namespace one\two{ const NAME = '西门大官人'; function php(){ } class phpcn{ } } namespace one\two\three{ const NAME = '西门大官人'; function php(){ } class phpcn{ } }
- 命名空间使用 "namespace" 关键字声明
- 解决全局成员的命名冲突问题
- 实现多态的前提是要先继承,在重写父类方法
- extends 关键词继承父类
- 类里成员有两种:属性(变量)和行为(方法)
- 成员变量,也叫: 类属性
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章