这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day09-流程控制

settype()

可变变量

变量的引用

1.流程控制中的三种结构

顺序结构 分支结构 循环结构

2. 分支结构

  1. 单向分支

语法结构:

if (表达式) {

语句体;

}

执行流程:

首先判断表达式 如果表达式为真,那么执行大括号里面的语句ti;如果为假,跳过大括号里的继续往下执行;

  1. 双向分支

语法结构:

if (表达式) {

真区间;

} else {

假区间;

}

执行流程:

首先判断表达式是否为真,为真走真区间,如果表达式为假,走假区间

永远不会同时执行真区间的语句体和假区间的语句体

  1. 多向分支(巢状分支)

语法结构:

if (表达式1) {

语句体1;

} else if (表达式2) {

语句体2;

} else if (表达式3) {

语句体3;

} else {

语句体4;

}

执行流程:

首先判断表达式1 如果表达式1为真执行语句体1然后结束整个结构.若为假判断表达式2...如果所有的表达式都为假的时候,执行else

当所有的情况都做了判断,那么最后else 可以省略

一般用于区间判断

  1. 嵌套分支

5)switch...case (break,default)

用于确定值判断

语法结构:

switch (变量) {

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

case 值3:

语句体3;

break;

default:

语句体4;

}

执行流程:

拿到这个变量值以后 进行case值的对比,如果匹配成功走对应case区间;然后比如break跳出switch结构 如果 case所有的对比都不匹配,走default

基本上每个case 都有一个break 如果没有break,一直往下执行直到碰到break结束整个结构

case后边值可以是标量(最好不放浮点),常量来做比较

当所有的情况都罗列出来那么default可以不加

多个case可以执行同样的语句

3.循环结构

for

语法结构:

for (变量初始化; 循环条件; 计数条件) {

循环体;

}

执行流程:

进入for首先且执行一次变量初始化,然后判断循环条件是否满足,为真执行循环体;再执行计数条件-->继续判断循环条件,为真继续执行循环体,再执行计数条件,知道循环条件为假,那么结束整个循环

【注】:双层for循环

第一层控制行,第二层控制列

特点:灵活多变的

1.第一个表达式跟第三个表达式可以提出来,但是第一个要放上分号占位表示第二就是循环条件

2.循环提交可以省略 但是会出现死循环 这时候要用break

while

语法结构:

while (循环条件) {

循环体;

}

执行流程:

首先判断循环条件,如果为真执行循环体,为假no执行

[zhuyi]while非常容易写出死循环那么两种情况 第一加上计数条件 第二种break;

do..while

语法结构:

do {

循环体;

} while (循环条件);

执行流程:

首先进入的时候先执行一次do大括号里的循环体、然后再去while判断循环条件,如果为真执行do里的循环体,直到while条件为家终止循环

while 跟do..while区别

while:先判断再执行

do..while:先执行再判断 (至少执行一次)

goto:

直接跳到指定的标号处

echo '村长你的牙好亮啊<br />';

goto test;

echo '村长你的牙好亮啊<br />';

echo '村长你的牙好亮啊<br />';

echo '村长你的牙好亮啊<br />';

test:

echo '村长你的牙好亮啊<br />';

echo '村长你的牙好亮啊<br />';

(break continue)

break 用于结束循环,不管break后边有多少语句,碰到break立即结束循环

continue: 用于结束本次循环 不管后边有多少语句,都不执行,后进入下一次循环

这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

day08类型转换,运算符,表达式

资源:resource

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$con = fopen('ceshi.txt', 'r');

//【注】第一个参数(arg) 不要用中文

$con = false;

if ($con) {

echo '真区间';

} else {

echo '假区间';

}

gettype() :获取数据的类型

empty() :判断的是这个变量是否为空 为空返回真true 不为空返回的是false

emptyisset 的区别

empty() 判断这个变量是否为空 为空返回真 不为空返回的是false

isset() 判断这个变量是否定义 如果定义返回真 如果没有定义返回假

使用:一般在判断数组或者一个变量里面是否有值的时候用 empty

2.判断类型

1
2
3
4
5
6
7
is_array() is_bool() is_float() is_integer()

is_null() is_numeric() is_object() is_resource()

is_scalar() // 检测是否是标量

is_string()

返回值:是要判断的类型 就返回真 不是就返回假

3.类型转换

强制类型转换

1.转换函数

1
intval() strval() floatval() boolval()

只在使用的时候改变了变量的类型 并没有改变变量本事的类型

2.在变量前边加上(int)(string)(float)(bool)转换方式

只在使用的时候改变了变量的类型 并没有改变变量本事的类型

3.settype

arg:

var 要转换的变量。

type 的可能值为:

boolean integer float string

设置变量的类型,会改变变量本身的类型

settype($num, 'null') 等价于 unset($num);

1.当字符串转为整型 或者浮点型时候 开头如果不是数字那么直接转为0

2.空转为整型是整型的0

3.空转为浮点型是浮点型的0

4.空转为字符串是空字符串

5.浮点型的1234.0 转为字符串是1234

6.浮点型的1234.45 转为字符串是1234.45

7.浮点型转为整型的时候小数点后边的全部干掉

自动类型转换:

用 . 拼接时候会转换成字符串

在运算的时候会自动转换

1.做加减乘除运算的时候 字符串会自动转为整型或浮点型

2.bool值参与运算的时候 自动将true转为1 false转为0

3.如果用点拼接字符串 然后在拼接bool值 布尔值true转为1 false转为0

4.如果if小括号里面有运算表达式 最后都转为bool值

:转为bool值为假的情况

1.整型的0是假 其余都是真

2.浮点型的0.0是假 其余都是真

3.空字符串是为假 就算一个空格他也是真

4.字符串里有一个0 是假 其余为真

5.null(空)是假

6.未声明成功的资源也是假

7.空数组也是为假

4.常量 ()

常量定义

在程序的运行的运行过程中 其值不会被改变的

不可以unset

定义:

define('常量名', '常量值');

规范:

1.常量名用单引号(双引号也行,但是从效率考虑用单引号)

2.一般都常量名都使用大写(规定必须用大写)

3.常量名也区分大小写

4.常量名定义时候也是数字 字母下划线不能以数字开始 尽量不用数字

5.常量的值只能用标量

6.常量的作用域是全局

7.常量调用时候不能写在字符串中,想使用可以用 . 拼接

8.不可以重复定义

常量判断:

defined(常量名)

是否定义了常量 定义了返回true否则返回false

系统常量()

__LINE__ 当前所在行数

__FILE__ 在前所在文件全路径

__DIR__ 所在目录

PHP_OS php运行的系统

PHP_VERSION php的版本

(了解先背下来)

__FUNCTION__:当前函数名

M_PI :圆周率

__CLASS__ :当前类名

__METHOD__:当前成员方法名

__NAMESPACE__:当前命名空间

5.可变变量

$hello = 'lilei';

$lilei = 'hanmeimei';

echo $hello . '<br />';//lilei

echo $lilei . '<br />';//hanmeimei

echo $$hello; // hanmeimei

// $$hello = $lilei;

6.变量的引用

//当我们没有使用&引用变量时两个变量有各自的存储空间

当使用了& 以后 两个变量指向使用的是同一个存储空间

修改一个的值 另一个也会修改

$num = 20;

$num1 = &$num;

$num1 = 30;

echo $num . '<br />';

echo $num1 . '<br />';

7.运算符和表达式

运算符:

表达式:由变量 常量 运算符组成

【注】表达式都有值

算数运算符: + - * / %

赋值运算符: = += -= *= /= %= .=

+=

.=

自增自减:

自增:++$num $num++ 都会让$num + 1

自减:--$num $num-- 都会让$num -1

区别:

$num = 3;

$num1 = ++$num;

++$num 先加再用 先把1加给$num //4 $num1=4

--$num 先减再用

$num1 = $num++

$num++ 先用再加 先把$num本身的值赋给$num1 之后自身+1

$num-- 先用再减

关系运算符:> < >= <= == != === !==

== 模糊等于 只比较值 不比较数据类型

!= 模糊不等于

=== 全等于 就是值和类型都相同表达式才为真

!== 不全等 有一个不管是值还是类型有一个一样 就为真

逻辑运算符 && and || or ! xor

&& and

逻辑与:并且

当两个表达式同时为真 才执行真区间

|| or

逻辑或:或者

当两个表达式只要有一个表达式为真 就执行真区间

xor 逻辑异或

相异时候为真 相同的时候为假

短路原则:

&& and

当第一个表达式为假的时候 直接走假区间 不会判断第二个表达式是真还是假

|| or

当第一个表达式为真的时候,直接走真区间 不会判断第二个表达式为真还是假

!:取反 true取反是false

按位运算(了解)

& | ^ ~ << >>

8.优先级

先乘除后加减 如果不行直接加上小括号

9.三元运算符

? :

表达式 ? 真区间 : 假区间;

其他运算符 @ => ->

``:执行系统的命令

@:抑制错误输出(单行)

=>:数组中键值对的关联符

->:对象成员的访问方式

掌握系统函数

floor():返回不大于 value 的最接近的整数,舍去小数部分取整。

ceil(): 返回不小于 value 的下一个整数,value 如果有小数部分则进一位。

round():四舍五入


PHP官网(中文):http://www.php.net

PHP学院:http://www.phpxy.com

PSR规范


错误:

parse 或者syntax 解析

notice 通知

warning 警告

fatal 致命


这是我早期的 php 学习笔记,php 的学习版本版本是 5.6、7,🐟2020/05/06年从有道笔记导出至此。

阅读全文 »
0%