php语法初步:
一、什么是php
html php mysql
php:是一种运行在服务器端的脚本语言,可以嵌入到html语言中
运行php脚本,必须有服务器环境,web服务器 apache nginx
phpstorm:脚本编辑器
phpstudy:集成工具 集成了apache 和 mysql
二、启动phpstudy:
1、双击phpstudy (有更新点击跳过) 点击启动 有连个绿色的点。就说明已经启动成功了
2、打开浏览器在地址栏输入:localhost 127.0.0.1
出现hello word 说明能正常运行了
3、网页的根目录在哪?
安装路径下:
phpStudy\PHPTutorial\WWW
4、后面自己创建工程一定要把工程(项目)创建在www文件下
例如工程的名字:test
5、怎么访问自己创建的工程(项目)
localhost/test/login.html
三、创建第一个php工程:
1、 在www文件夹下创建工程文件夹(文件夹名字就是工程的名字)
2、打开phpstorm:在左上角file中找到open 找到自己创建的路径
3、选择打开的工程是在“这个窗口打开” 还是 “新创建窗口”
四、创建脚本:
1、直接在phpstorm里创建
1、选中文件夹--》右键--》new--》起名---》选择文件的类型(php)
不会自己创建短标签 需要自己手动填写
2、选中文件夹--》右键--》php file
自动创建php短标签
2、在物理机上的工程根目录创建文件
www下找到工程文件夹 创建文本文档--》改名---》修改文件后缀为php
php语法:
一、php代码标记(短标签):
1、asp标记:
<% php代码 %>
2、短标记:
<? php代码 ?>
3、脚本标记:
<script language="php"> php代码 </script>
4、标准标记(常用):
<?php php代码 [?>]
二、php中注释:
1、行注释
// 或 # 快捷键:选中要注释的内容(可以多行):ctrl+?
2、块注释
3、分隔符:
在PHP中每一行结束,在行尾要加上分号;
注意:在PHP中所有的符号 必须是英文状态下的
php数据量:
一、什么是数据量?
用来存储数据的量
二、php中哟哪些数据量:
变量:
在程序运行过程中 会 发生变化的量
常量:
在程序运行过程中 不会 发生变化的量 如:π 3.14......
三、变量:
PHP中的数据量(变量):
1什么是数据量:是用来储存数据的量 比如游戏中的血量 健康值 攻击力等
2PHP中有哪些数据量:
概念:
变量:在程序运行过程中 会 发生变化的量叫做变量
常量:在程序运行过程中 不会 发生变化的量叫做常量(比如:Π不管放到哪里都是3.1415926.....)
3变量的作用:用来存储数据变化的 变量是有名字的,给变量起名区分变量 当想要访问某个数据的的时候,访问名字就是访问这个数据
4变量命名规则:
(1.)在PHP中命名变量的名字必须加上$符号
(2.)变量的名字由数字(数字在哪里都可以就是不能开头)、字母(包含大小写)、下划线组成 不可以有空格
(3.)PHP中允许有中文变量名,但是不建议使用 不能使用PHP中预定义(已经被定义好的变量名,如:_GET 有特殊的意义)的变量名
(4.)常见的预定义变量:$_GET $_POST $_REQUEST $_SERVER 等 所有的预定义变量名都是大写的 变成小写的就没问题了
(5.)PHP中是区分大小写的
(6.)洛必达法则:所有的脚本语言必须遵守的法则,定义变量名要见名识意
定义:当定义变量名的时候,有两个或两个以上的单词组成,从第二个单词起首字母大写。
5变量的应用:
变量赋值:可以在定义变量的时候直接赋值 也可以在程序运行过程中赋值(发生变量)
6可变变量:
如果一个变量保存的值恰好是另外一个变量的名字,那么可以通过访问一个变量得到另外一个变量的值(在变量的前面多家一个$)
引申:单引号和双引号的区别:双引号解析变量,单引号不解析变量。
7变量的传值:
值传递:将自己的变量复制一份,传给别人 引用传递:将自己保存的值地址传递赋给别人 $a=&$b
四、常量:
1.概念:程序运行的过程不会发生变化的量
2.作用:用来存储数据
3.定义规则:
1常用定义特殊: define (“常用的名字”,常量值) const 常量名=常量值
2名字由数字(数字在哪里都可以就是不能开头)、字母(包含大小写)、下划线组成 不可以有空格
3常量定义没有$
4常量定义通常使用大写字母(为了和变量区别)
5不能定义为预定义常量名:echo __DIR__; 查看被执行的脚本在电脑上的绝对路径
echo __FILE__; 查看被执行的脚本在电脑上的绝对路径(带自己的名)
echo PHP_VERSION; 查看版本号
6常量在运行过程中不可以再赋值
数据类型:
一、变量 常量都是用来储存数据的
二、数据分为:三大类八小类
基本数据类型:
整形:整数 1 2 10 22
浮点型:3.14 带小数点的
字符串:中/英文
布尔型:true fales
复合型:
数组:array 一次性储存多个数据
对象:object 万物皆对象(面向对象<--->面向过程)
特殊数据类型:
资源:resource 图片 视频 音频 脚本 数据库
空:null
三、数据类型转换:不同的数据类型之间不能进行运算的
数据类型转换有两种方式”
隐式转换(自己转换):系统根据自己的需要进行数据类型之间的转换(用的较多,但是效率低)
显示转换(强制转换):人为的根据需要进行转换 方法:在要转换的变量前加上一个括号,在括号里面写上要转换的类型
查看数据类型:
var_dump($num) 显示$num是什么数据类型
gettype($num) 查看数据类型
几种特殊的数据类型的转换:
1.布尔类型的数据转换整形:
true--->1
false--->0
2.字符串整形有自己的特殊方式:
如果是以数字开头的字符串,转整形的时候就转到数字结束为止
如果是以字母开头的字符串,永远转换成0
=================================赋值运算符=============================================
赋值运算符 就是那个等号‘=’ 将右边的结果赋值给左边 $name=null
算数运算符 + - * / %(求模运算,求余数) $num=10; $num2=3; echo (int)($num/$num2);或echo $num%$num2;
比较运算符 < > <= >= ==(判断两边的值是否相等,只判断数据的大小)
===(全等 判断两边的数据是否相等,判断大小和数据类型)
!=(不等于或者理解为==的取反)
!==(不全等是===的取反)
比较运算符用来比较两个数据的大小或者内容是否相同,比较完成后会返回一个结果,返回的结果是数据类型bool (满足条件返回true 正确 不满足条件返回fales 错误)
逻辑运算符 && 与 ||或 !非
&& 逻辑与左边和右边的条件同时成立的时候才会返回bool值 同真则真,一假则假,两假更假
|| 逻辑或左边和右边的条件只要有一个条件成立就会返回bool值 一真则真,两假则假,两真更真
! 对自己有的条件取反,原来是true返回fales 原来是fales返回true 真亦假,假亦真
错误抑制符 @ 在PHP中有一写错误可以提前预知,可是这错误无法避免,但又不想把错误报错给客户看,就可以加错误抑制符
连接运算符 . 将两个字符串连接在一起 .=复合运算 将左边和右边的内容连接,然后将新的值赋给左边
自操作运算符 自己操作自己 ++ 自己给自己加一
-- 自己给自己减一
++ -- 在变量的前后是不一样的 前置自增 ++或--放在变量的前面,先把自己增加,在将增加后的值赋给别人
后置自增 ++或--放在变量的后面,把自己增加会较少以后,将原来的值赋给别人
+= $num+=20 =====> $num=$num+20
*= $num*=20 =====> $num=$num*20
/= $num/=20 =====> $num=$num/20
%= $num%=20 =====> $num=$num%20
三目运算符 三元运算符 三个表达参与的运算
基本语法结构:如果条件1成立就执行条件2否则就执行条件3
举例:echo 5>7 ? "dui" : "cuo" ;
条件1 条件2 条件3
引申:如果各个条件比较多 方便看 可以各个条件使用括号包裹 也就是说各个条件可以独立成为三目运算。
==================================流程控制语句==========================
控制代码的执行顺序:代码是自上而下,自右而左
分支结构:给定一个条件,同时为了给条件设置了多种情况,通过判断条件,实行具体的代码
if分支结构:
基本语法:
if(判断条件){
事件1
}else{
事件2
}
复杂分支结构:
if(判断条件1){
事件1 //满足条件的情况执行事件1
}else if(判断条件2){ //不满足条件的时候
事件2
}elseif(判断条件3){
事件3
}.。。。。。。。
else{
事件n
}
switch分支结构:同一个条件,通常有多个值,每个值对应者不同的情况
语法结构: switch(表达式){ //这个表达式只是一个变量
case 值1:
要执行的代码;
break;
case 值2:
要执行的代码;
break;
case 值3:
要执行的代码;
break;
。
。
。
default:
要执行的代码;
brerak; //退出
}
循环结构:在某个条件控制范围内,使得指定的代码可以重复执行
基本结构:
1.for循环结构:for循环结构 num=1 ---》重复执行num++
基本语法结构:
for(表达式1;表达式2;表达式3){
循环体
}
表达式1:初始化条件 num=1
表达式2:边界判定 num<=10;
表达式3:执行条件的变化(自操作)num++
循环体:echo
for($num=1;$num<=10;$num++){
echo $num;
}
for循环原理:
1.执行表达式1(只执行一次)
2.执行表达式2,判断是否满足条件,如果满足条件就执行循环体,不满足条件,结束循环
3.执行表达式3
4.重复第二条
=====================================函数========================================
* 代码流程控制
* 流程控制语句:可以控制代码的执行顺序
* 函数(方法):是一种语法结构,可以实现某一个代码块的重复利用
* 函数语法结构:function+函数名字(参数){
* 代码块}
* 代码块:之前所有学到的内容皆可用
* function 就是一个关键字 他是必须的
* 函数的名字:规范
* 1.由数字、字母、下划线构成,数字不能开头
* 2.函数的名字通常代表着代码块要实现的功能,所以函数的名字要体现函数的功能(见名识意)
* 3.在一个脚本的生命周期中不能出现重名的函数
* 函数的使用:
* 1.不能自动执行,需要调用才能执行,(写“函数的名字()”调用函数)
* 2.调用函数的位置很重要,不同的位置调用,代码的执行顺序不一样
* 3.函数的调用可在函数体内也可在函数体外(每一个大括号代表一个函数体)
* 参数:可有可无,在定义函数的时候小括号里面可以放入参数
* 定义:函数体要执行某些功能但是在执行功能的时候要一些数据的支持,但是支持的数据暂不确定,这个时候用参数代替
* (用来代替支持数据的数据就叫参数)
* 分类:形参:形式参数,没有具体的意义,在函数定义的时候使用
* 实参:实际参数,具有一定的数据,在函数调用的时候使用
* 关于参数:
* 1.在PHP语句中没有固定的个数
* 2.参数也可以具有默认值
* 3.形参带默认值,如果形参没有默认值,在调用时使用实参的值
* 4.形参实参必须一一对应
* 5.没有默认值的形参必须给实参
* 6.带有默认值的形参必须放在最后
* 7.实参的个数不能少于形参,具有默认值的形参除外
* 参数的传递方式:
* 传递值:实参在调用时将值传递给形参,实际上是用的简单的值传递方式,此时实参和形参之间没有任何关系
* 引用传递:函数体内部拿到外部数据,实际上是拿到数据的地址
* 引用传递基本语法:
* 在形参前面加上&
* 注意:在不同的函数里面 形参的名字可以重复,不受影响
* 作用域:
* 全局变量:在函数体外定义的变量
* 局部变量:在函数体内部定义的变量,只属于当前的这个函数,只允许在当前的函数体内使用
* 超全局变量:跨脚本传递数据,在不同脚本之间进行变量传递,没有访问的限制(可在函数体内也可在函数体外)
* global关键字,是一种在函数体内部定义变量的方式:
* 1.如果使用global关键字定义的局部变量名字在外部存在,name系统在函数内部定义的变量直接指向外部变量(其实就是函数体内外使用同一个变量)
* 2.如果使用global关键字定义的局部变量的名字在外部不存在,系统会自动在全局空间(外部)定义一个与局部变量同名的变量
* 使用: global+变量名; global关键字不能直接赋值
* 变量名=值; 这个时候才是赋值
* 本质:在函数体内外对于同一个变量名使用同一个内存地址存储数据
* 注意:global关键字虽然可以实现函数体内外变量的相互访问,但是一般不用。如果想实现函数体内外数据交互,一般使用参数,比较简单。
* static静态变量:
* 定义:在函数体内部定义的变量使用static关键字修饰变量,用来实现跨函数共享数据。
* 当函数运行结束,所有的变量都会被清空,所有的局部变量都会被初始化,但是加上static修饰的变量不会被初始化
* 基本语法:static 变量名=值(在函数体内部)
* 作用:1.为了统计,统计当前的函数被调用了几次
* 2.统筹函数多次调用得到不同的结果。(递归思想)
* 函数返回值:
* 关键字:return
* 定义:return,指的是将函数体内部的结果,通过return关键字返回给函数体外部。
* 作用:将计算结果返回到函数调用的地方。
* 注意:1.return可以返回任意类型的数据
* 2.如果return用在函数体内,就返回函数的运行结果
* 3.如果return用在函数体外,return关键字后面的一切都不执行(无视一切)
* 文件包含:
* 关键字:include 在脚本中引用其他脚本的内容
* 语法:include "脚本的绝对路径" ../
* 注意:使用其他脚本里面的函数 和 引用其他脚本 注意顺序问题
==================================2020-02-26================================================
===================================面向对象=================================================