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