PHP1 PHP快速入门
什么是PHP
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
运行原理
运行在服务器端的,内嵌在html中的脚本语言
集成环境有哪些
wampserver xmapp phpstudy appserver 等等
php引擎(7.0) mysql(数据库 database) apache(服务)
访问:
localhost 本机服务器名字 / 是你的php文件
127.0.0.1 你本机的ip地址 /php文件
开发工具
vim subline 【notepad++】 phpstrom webstrom dw NetBeans
php信息
phpinfo(); 显示所有的php的信息
它是模块化的,你需要用什么,你必须给我开启哪个模块
php文件格式
1)大家都在使用的格式
你们再写php代码的时候不用给我直接用浏览器直接打开
<?php
这里写你的php代码
?>
2)知道就行了(短标签格式)
<?
你的php代码
?>
注意:你想用这个风格的时候,在你的php.ini 文件里面
把short_open_tag = off off改成on,你改完以后一定要重启服务
3)简写打印格式
变量
变量就是可以改变的量
变量就是一个盒子,专门存储东西的,在程序的执行过程当中是可以发生改变的在php当中必须要用$开头
php的区分大小写特性
1,变量区分大小写;
2,常量通常默认也区分,但可以人为设定为不区分(但这种做法不推荐)
3,其他场合的关键字都不区分,比如函数名,系统关键字(for,if,return….)
命名规范
1、以$开始,后面可以接英文字符
2、严格区分大小写
3、不要以数字和特殊字符开头
4、它可以用中文,我强烈建议不要使用
5、下划线不属于特殊字符
6、数字可以加在中间或者结尾处
7、变量名字要有意义
8、要照着你们公司的规范来
命名规则:
起名字一定要有意义
遵循驼峰命名法或者_
变量声明时候等号两边加上空格
变量的操作
1、给变量赋值 =
2、输出变量echo
3、判断一个变量是否存在isset();
4、销毁变量 unset();
打印输出
echo
输出的时候用这个 echo $a,$b
;
print
他也是输出但是它只能输出一个
print_r
它可以打印多个变量,但是咱们一般情况让它打印(数组)
`var_dump() //不仅仅输出值,还有类型`
关于php注释问题
多行
/* 写你要注释的代码段*/
单行
// # 我推荐大家使用//
有利于团队开发
维护
总体划分
有8种数据类型:
基本类型(标量类型):
整数类型: int, integer
浮点数类型: float,double, real
字符串类型: string
布尔类型: bool, boolean 这种类型,只有2个数据:true false
复合类型:
数组: array
对象: object
特殊类型
空类型: null 这种类型中,只有一个数据,那就是null
资源类型: resource
单引号和双引号的区别
1、单引号不能解析变量,双引号可以解析变量
2、双引号执行转译字符,单引号不转译 \n \r \t \
3、它执行转译 \ 和 \’
4、能使用单引号就不适用双引号,为什么?因为单引号效率要比双引号快
5、如果是字符串和变量一起的时候 用.来链接
6、双引号里面插入单引号,单引号里面插入变量,变量会解析
7、如果双引号里面插入变量的时候请在后面加上空格或者,号,不然计算机会认为你是一体的或者用大括号抱起来
heredoc
1、定界一般符用大写,首尾要一致
2、开始的时候用双引号引起来,后面的时候是不用引号的,他跟双引号差不多 但是它可以再套双引号
3、
$str =<<<"ABC"
女人喜欢坏坏的男人,"不喜欢"长坏的男人
"ABC";
echo $str;
最后一个定界符要顶格写
nowhoc
$str = <<<'ABC'
你们可以说我禽兽,'但是'不能骂我畜生,因为畜生也是有尊严的
ABC;
echo $str;
布尔值 bool boolean
true && false
第一种
if (条件) {
真区间
}
第二种
if (条件) {
真区间代码段
} else {
假区间代码段
}
第三种
if (条件) {
符合条件
} else if (条件) {
符合条件
} else {
都不符合条件的
}
人和人的距离不是你站在我面前我不认识你,而是你在if 我在else
【数组&&对象】 以后再说
空类型 null
1、指定变量为空
2、声明了变量,但是咱们没有赋值也为空
3、unset掉一个变量
常用的函数
is_array();
is_string();
is_bool();
is_float();
is_object();
is_int();
is_numeric();
is_resource();
is_null();
is_scalar();
【获取数据类型】
gettype(); //它只获取类型
var_dump();
运算符和表达式
【强制类型转换】
intval() //转为整型
floatval() //转为浮点型
strval() //转为字符串
boolval() //转为布尔值
注意:它不能改变原来的变量的值
在js里面也有类型转换(记下就行,以后再介绍)
Number() parseInt() parseFloat();
【变量前面你加上()】
小括号里面放置你的限定的类型
int float string bool object array
不能放null resource
【settype】
settype(变量名字, '类型')
注意: 它可以改变原来变量的值,类型一定要加引号
【强制类型转换总结】
1、空转化为整型会是0
2、空转化为浮点型变成浮点型的0
3、空转化为字符串会成为空字符串 ‘’ tip:中间不能有任何字符,包括空格
4、整型如果后面有字符串,会把字符串干掉留着前面的数字
5、浮点型如果后面有字符串,会把字符串干掉留着前面的数字包括小数点以后的
6、整型浮点后面的数你在大都会干掉 tip:他不是四舍五入
7、settype($a,null) 等价于 unset($a);
8、(int)$a floatval($a) //不改变原来的值
【自动类型转换】
就是你在进行 + - * / % .运算的时候会自动先转化成可以元素的数字,在进行运算
1、true在进行自动转换的时候 是1 false 是 0
2、如果是字符串前面有数字后面是字母,把字母统统干掉只把前面的数字进行元算
3、如果开头是字母统统都是转成0 在进行运算
重点【为false几种情况】
1、整型的0在进行判断的时候为假,整型的1在判断的时候为真
2、如果浮点的0.0000都是假的只要后面有一个是非零的数字 即为真
3、空字符串为假'' 如果中间有一个字符都是真那怕是一个空格 ??
4、空字符串的0即为假 其他皆为真
5、空数组为假
6、null 作为判断条件的时候是假的
7、未声明成功的资源也为假
【变量引用】
用 &
就是说他们同时指向一个盒子(内存) 如果中间有一个发生改变都发生改变
判断isset(变量名):
作用:判断该变量是否存在,或该变量是否有数据值!存在或有数据值,就是true,否则就是false
【isset empty is_null bool区别】
isset() :是否被设置(空间)
empty() : 判读是否为空
is_null() //只判断咱们所学的那三种情况
1、赋值为空
2、声明未赋值
3、unset
if (is_null(null)) {
} else {
}
isset()给 is_null相反
empty 和 bool相反
if (arr) {
真的
} else {
假的
}
【可变变量】
$super = 'man';
$man = 'kunge';
$kunge = 'aa';
$aa = 'cc';
echo $super.'--'.$man.'---'.$kunge.'<br />';
echo $$$man;
//$super $man $kunge
常量
常量的定义
常量是程序运行的时候是不可以改变的量
定义格式:define('常量名字','常量的值');
注意事项
1、不能重复定义
2、常量的名字咱们一般用大写字母
3、常量的值只能是标量
4、常量的作用域是全局的
5、输出的时候没有$符号
6、常量不能写到字符串中
【判断常量是否被定义】
defined('常量名');
tip:如果定义了返回真,否则返回假
这样的判断的时候加上引号
【系统常量】
__FILE__ //找打你的文件
__LINE__ //你代码所在的行数 在第几个行的意思
__DIR__ //找到你当前访问文件所在的目录
PHP_OS //获取系统信息
PHP_VERSION //获取版本信息
__FUNCTION__ //获取当前函数名
M_PI 圆周率
(了解)
__MHTHOD__ //获取当前成员方法名
__NAMESPACE__ //获取当前命名空间名字
__TRAIT__ //获取当前TRAIT名字(多继承)
__CLASS__ // 获取当前类名
【运算符和表达式】
表达式:是有变量、常量、运算符组成的式子
tip:如果你的表达式没有值什么的没有任何意义
【算术运算符】
+ - * / %
1+1
2/1
2*2
5%3 //余数
$n % 2 == 0;
求模(取余,模运算)
【赋值运算符】
= -= += *= /+ %= .=
+=
【自增自减运算符】
++ --
++ 或者 -- 在前 先自身累加 在赋值
在后的情况 先赋值 在 自身累加
【比较运算符】
> < >= <= == === != !==
==
等于 只判断值而不比较数据的类型
===
不仅仅比较值还要比较类型
说白了 就是true和false 关系成立就是true 不成立就是false
【逻辑运算符】
这个你必要要会
&& || !
&& 逻辑与 并且 有一个为假就是假 多个为假的还是假的 只有同时为真的时候才是真
|| 逻辑或 或者 只要有一个为真就是真 多个同时为假才是假的
! 就是假变成真的 真的变成假的
你不会没事无所谓好不好
【位运算符】
& 按位与
| 按位或
>>
<<
【短路】
(懒人思想)
$a && $b 前面如果为假的后面就不走了
勤快人
$a & $b
$a || $b 前面如果是真的就不执行了
$a | $b(sb)
【三目运算符】
三元运算符
语法定义
条件? 真区间 : 假区间
它可以在嵌套 注意:能不要嵌套就别嵌套了看着费劲
怎么跑跑的
如果条件是true 走? 后面的代码段 是假走 : 后面的代码段
【其他符号】
@ 能抑制错误信息,我说能别用就别用 它效率比较低 工作中更不要用
=> 数组访问符号
不懂没事会讲的
$arr = [1,2,3];
$arr = ['a' => 'b']
-> 对象访问符
分支结构
【单分支结构】
语法定义
if (条件表达式) {
你要运行的代码段
}
运行原理:
如果条件为真,才走下面的大括号里面的代码
否则退出,继续执行大括号后面的代码
if (true)
echo '我前女友结婚了,还特意给我打电话';
echo '<hr />';
echo '隔壁老王的';
缩写的格式 它只跟第一个分号有关系
断点调试
die;
exit;
【双向分支结构】
语法定义
if (条件) {
真区间
} else {
假的区间
}
执行流程
如果条件为真的就走真区间 否则走假的
这两个区间是不可能同时执行的
【多项分支结构】
语法定义
if (条件表达式1) {
} else if(条件表达式2) {
} else if(条件表达式3) {
} else if(条件表达式4) {
} else {
备胎
}
代码是从上到下执行 先找条件表达式1 如果成立 走下面的大括号里面的代码端 整个分支结构结束
如果条件表达式1不成立 接着往下找,一直到找到成立为止,都不符合条件的话 走else 备胎
else 是可以加可以不加的
【嵌套分支结构】
语法定义
if () {
if () {
if () {
} else if () {
}
}
} else {
}
总结:
如果条件满足才会下面的代码 下面的代码还有条件 是一级一级望下去找的
【switch case】
switch(条件表达式) {
case 值1:
代码段;
break;
case 值2:
代码段;
break;
.........
default:
break;
}
switch($shaizi) {
case 1:
case 2:
echo '拖地<br />';
echo '洗衣服<br />';
break;
case 3:
case 4:
case 5:
echo '洗锅碗瓢盆<br />';
echo '看娃子<br />';
echo '晒被子<br />';
break;
case 6:
echo '做饭<br />';
break;
default:
echo '老婆全干了<br />';
break;
}
//它感觉像if else if
变量处只能给标量
1、每一个case 后面加上break,作用是结束真个结构
2、case 值后面写标量 才能进行判断
3、default 可以加可以不加 相当于 if else if “ else ” 备胎
4、break 可以不写,能写就写吧
5、case可以写在一起平行的,就是范围大了
【更好的随机数】
mt_rand(开始,结束);
怎么取值
从开始到结束中间随机取值
【循环】
for ($i=0;$i<5;$i++) {
}
语法定义
for (初始值;条件;自增/自减) {
循环体
}
怎么执行的
先走初始值,然后让初始值跟条件比较 是否满足,如果满足走循环体,否则直接结束循环
如果满足 走 自增、自减 走完以后再去跟 条件比较 如果成立 继续循环体 知道条件不成立 跳出循环体
9 9 乘法表
用途
用在已知的循环次数
while
语法定义
while (条件) {
循环体
}
// 用在你不知道循环多少次 就用它
do while
语法格式
do{
循环体
} while (条件);
do while 和 while 的区别
do while 先走一遍循环体
while 是判断条件是否成立
【break】
跳出此次循环并且结束
【continue】
跳出当前循环 继续执行下次,直到 循环结束(条件不成立)