提交 a7ada94a 编写于 作者: 彭世瑜's avatar 彭世瑜

fix

上级 54a77055
- 常用
- [在线工具](doc/tools.md)
- 前端 - 前端
- [Html](doc/html.md) - [Html](doc/html.md)
...@@ -26,4 +29,5 @@ ...@@ -26,4 +29,5 @@
- [Neo4j](doc/neo4j.md) - [Neo4j](doc/neo4j.md)
- [Redis](doc/redis.md) - [Redis](doc/redis.md)
- [其他](doc/index.md) - 其他
- [其他](doc/index.md)
...@@ -11,3 +11,5 @@ ...@@ -11,3 +11,5 @@
[PHP数据类型](blog/php-basic/type.md) [PHP数据类型](blog/php-basic/type.md)
[PHP运算符 operator](blog/php-basic/operator.md) [PHP运算符 operator](blog/php-basic/operator.md)
[PHP 流程控制](blog/php-basic/process.md)
# PHP运算符 operator # PHP 运算符 operator
## 赋值运算符 ## 赋值运算符
...@@ -187,24 +187,23 @@ var_dump($a); // int(5) ...@@ -187,24 +187,23 @@ var_dump($a); // int(5)
%= %=
``` ```
需要注意除法或取余,右边的操作数为0的情况 需要注意除法或取余,右边的操作数为 0 的情况
## 计算机码 ## 计算机码
计算机码:计算机实际存储数据的时候,采用的编码规则(二进制规则) 计算机码:计算机实际存储数据的时候,采用的编码规则(二进制规则)
数值本身最左边第一位是符号位,正数0,负数1 数值本身最左边第一位是符号位,正数 0,负数 1
原码、反码、补码 原码、反码、补码
- 原码 数据本身从十进制转换成二进制得到的结果 - 原码 数据本身从十进制转换成二进制得到的结果
- 正数:左边符号位为0(正数的原码,反码和补码就是原码本身) - 正数:左边符号位为 0(正数的原码,反码和补码就是原码本身)
- 负数:左边符号位为1 - 负数:左边符号位为 1
- 反码 针对负数,符号位不变,其他位取反 - 反码 针对负数,符号位不变,其他位取反
- 补码 针对负数,反码+1 - 补码 针对负数,反码+1
系统中存在两个0 系统中存在两个 0
``` ```
+0 0000 0000 +0 0000 0000
...@@ -223,7 +222,7 @@ var_dump($a); // int(5) ...@@ -223,7 +222,7 @@ var_dump($a); // int(5)
## 位运算符 ## 位运算符
位运算:取出计算机中最小的单位(位bit)进行运算 位运算:取出计算机中最小的单位(位 bit)进行运算
``` ```
& 按位与 两位都为1,结果为1,否则为0 & 按位与 两位都为1,结果为1,否则为0
...@@ -232,13 +231,13 @@ var_dump($a); // int(5) ...@@ -232,13 +231,13 @@ var_dump($a); // int(5)
^ 按位异或 两位相同则为0,不同为1 ^ 按位异或 两位相同则为0,不同为1
<< 按位左移 所有位向左移动一位,右边补0,相当于乘以2 << 按位左移 所有位向左移动一位,右边补0,相当于乘以2
>> 按位右移 所有为向右移动一位,左边补符号位对应内容(正数补0,负数补1),相当于除以2 >> 按位右移 所有为向右移动一位,左边补符号位对应内容(正数补0,负数补1),相当于除以2
```` ```
注意: 注意:
- 系统进行任何位运算的时候使用的都是补码 - 系统进行任何位运算的时候使用的都是补码
- 运算结束之后都必须转换成原码才是最终显示的数据 - 运算结束之后都必须转换成原码才是最终显示的数据
按位与 按位与
```php ```php
...@@ -252,8 +251,8 @@ var_dump($a & $b); ...@@ -252,8 +251,8 @@ var_dump($a & $b);
// 计算过程: // 计算过程:
// 5 0000 0101 (正数 原码==反码==补码) // 5 0000 0101 (正数 原码==反码==补码)
// -5 1000 0101(原码) // -5 1000 0101(原码)
// -> 1111 1010(反码) // -> 1111 1010(反码)
// -> 1111 1011(补码) // -> 1111 1011(补码)
// 5 0000 0101 // 5 0000 0101
...@@ -264,6 +263,7 @@ var_dump($a & $b); ...@@ -264,6 +263,7 @@ var_dump($a & $b);
``` ```
按位非运算 按位非运算
```php ```php
<?php <?php
...@@ -273,8 +273,8 @@ var_dump(~$b); ...@@ -273,8 +273,8 @@ var_dump(~$b);
// int(4) // int(4)
// 计算过程: // 计算过程:
// -5 1000 0101(原码) // -5 1000 0101(原码)
// -> 1111 1010(反码) // -> 1111 1010(反码)
// -> 1111 1011(补码) // -> 1111 1011(补码)
// -5 1111 1011(补码) // -5 1111 1011(补码)
...@@ -283,7 +283,6 @@ var_dump(~$b); ...@@ -283,7 +283,6 @@ var_dump(~$b);
``` ```
按位右移 按位右移
```php ```php
...@@ -295,51 +294,47 @@ var_dump($b>>2); ...@@ -295,51 +294,47 @@ var_dump($b>>2);
// int(-2) // int(-2)
// 计算过程: // 计算过程:
// -5 1000 0101(原码) // -5 1000 0101(原码)
// -> 1111 1010(反码) // -> 1111 1010(反码)
// -> 1111 1011(补码) // -> 1111 1011(补码)
// -5 1111 1011(补码) // -5 1111 1011(补码)
// >>2 --11 1110 // >>2 --11 1110
// 1111 1110 运算结果,左边补符号位(符号位为0,是负数补码) // 1111 1110 运算结果,左边补符号位(符号位为0,是负数补码)
// -1 1111 1101 反码 // -1 1111 1101 反码
// 1000 0010 原码 // 1000 0010 原码
// -2 // -2
``` ```
运算符的优先级(由高到低) 运算符的优先级(由高到低)
| 结合方向 | 运算符 | 附加信息 |
结合方向| 运算符 |附加信息 | -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
- | - | - | 不适用 | clone new | clone 和 new |
不适用 | clone new| clone 和 new | 右 | \*\* | 算术运算符 |
右| **|算术运算符 | 不适用 | + - ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 算术 (一元 + 和 -), 递增/递减, 按位, 类型转换 和 错误控制 |
不适用 | + - ++ -- ~ (int) (float) (string) (array) (object) (bool) @|算术 (一元 + 和 -), 递增/递减, 按位, 类型转换 和 错误控制 | 左 | instanceof | 类型 |
左| instanceof | 类型 | 不适用 | ! | 逻辑运算符 |
不适用 | !| 逻辑运算符 | 左 | \* / % | 算术运算符 |
左| * / %| 算术运算符 | 左 | + - . | 算数 (二元 + 和 -), array 和 string (. PHP 8.0.0 前可用) |
左| + - .| 算数 (二元 + 和 -), array 和 string (. PHP 8.0.0 前可用) | 左 | << >> | 位运算符 |
左| << >>| 位运算符 | 左 | . | string (PHP 8.0.0 起可用) |
左| .| string (PHP 8.0.0 起可用) | 无 | < <= > >= | 比较运算符 |
无| < <= > >= | 比较运算符 | 无 | == != === !== <> <=> | 比较运算符 |
无| == != === !== <> <=> | 比较运算符 | 左 | & | 位运算符 和 引用 |
左| & | 位运算符 和 引用 | 左 | ^ | 位运算符 |
左| ^ | 位运算符 | 左 | \| | 位运算符 |
左| \| | 位运算符 | 左 | && | 逻辑运算符 |
左| && | 逻辑运算符 | 左 | \|\| | 逻辑运算符 |
左| \|\| |逻辑运算符 | 右 | ?? | null 合并运算符 |
右| ??|null 合并运算符 | 无关联 | ? : | 三元运算符 (PHP 8.0.0 之前左联) |
无关联 | ? :| 三元运算符 (PHP 8.0.0 之前左联) | 右 | = += -= \*= \*\*= /= .= %= &= \|= ^= <<= >>= ??= | 赋值运算符 |
右| = += -= *= **= /= .= %= &= \|= ^= <<= >>= ??= | 赋值运算符 | 不适用 | yield from | yield from |
不适用 | yield from | yield from | 不适用 | yield | yield |
不适用 | yield| yield | 不适用 | print | print |
不适用 | print| print | 左 | and | 逻辑运算符 |
左| and | 逻辑运算符 | 左 | xor | 逻辑运算符 |
左| xor| 逻辑运算符 | 左 | or | 逻辑运算符 |
左| or | 逻辑运算符
文档:[https://www.php.net/manual/zh/language.operators.precedence.php](https://www.php.net/manual/zh/language.operators.precedence.php) 文档:[https://www.php.net/manual/zh/language.operators.precedence.php](https://www.php.net/manual/zh/language.operators.precedence.php)
https://www.bilibili.com/video/BV18x411H7qD?p=34&spm_id_from=pageDriver
\ No newline at end of file
# PHP 流程控制
代码执行的方向
## 控制分类
- 顺序结构 代码从上往下,顺序执行
- 分支结构 根据条件执行某一段代码
- 循环结构 指定代码块重复执行
## 顺序结构
最基本的结构,所有代码默认都是从上往下依次执行
## 分支结构
1、if 分支
基本语法
```
1、最简if
if(条件表达式){
满足条件所要执行的代码
}
2、基础if
if(条件){
满足
}
else{
不满足
}
3、复杂if
if(条件1){
满足条件1
}
else if(条件2){
满足条件2
}
else{
不满足
}
```
注意: 嵌套层数不宜过多
示例
```php
<?php
$a = 1;
if ($a == 1) {
echo '星期一';
} else if ($a == 2) {
echo '星期二';
} else {
echo '未知';
}
// 星期一
```
2、switch 分支
使用场景:同一个条件有多个值
基本语法
```
switch(条件表达式){
case 值1: // 判断表达式的结果与值相等
要执行的代码段1;
break;
case 值2:
要执行的代码段2;
break;
...
default:
默认自行的代码;
}
```
switch 匹配成功后,会执行之后的代码,需要使用 break 跳出
```php
<?php
$a = 1;
switch ($a) {
case 1:
echo '星期一';
break;
case 2:
echo '星期二';
break;
default:
echo '未知';
}
// 星期一
```
if 和 switch 的选择
- if 能做所有的的分支结构
- switch 处理的条件多,用于固定的条件
## 循环结构
- for 循环
- while 循环
- do-while 循环
- foreach 循环,专门针对数组
1、for 循环
基本语法
```
for(初始化条件; 边界表达式; 条件变化){
// 循环体
}
```
https://www.bilibili.com/video/BV18x411H7qD?p=37&spm_id_from=pageDriver
\ No newline at end of file
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
## 工具 ## 工具
[百度 AI 网络图片文字识别](https://ai.baidu.com/tech/ocr_others/webimage)
[ZY Player](http://zyplayer.fun/): 跨平台视频资源播放器, 简洁免费无广告. [ZY Player](http://zyplayer.fun/): 跨平台视频资源播放器, 简洁免费无广告.
[Md2All](http://md.aclickall.com/): Markdown 排版利器 [Md2All](http://md.aclickall.com/): Markdown 排版利器
...@@ -46,19 +44,8 @@ Logo:https://www.logoly.pro/ ...@@ -46,19 +44,8 @@ Logo:https://www.logoly.pro/
[Cmder](https://cmder.net/): Windows 下的终端工具 Portable console emulator for Windows [Cmder](https://cmder.net/): Windows 下的终端工具 Portable console emulator for Windows
[在线工具 tool.lu ](https://tool.lu/)
- [favicon 在线制作](https://tool.lu/favicon/)
[multiavatar 虚拟头像生成](https://multiavatar.com/)
[Faker API](https://fakerapi.it/it): a collection of completely free APIs that helps web developers and web designers generate fake data in a fast and easy way. No registration is required. No tokens, no authentication.
[DownGit](https://zhoudaxiaa.gitee.io/downgit/): 创建 GitHub 资源下载链接
[Nestopia](http://nestopia.sourceforge.net/): Nintendo NES Emulator [Nestopia](http://nestopia.sourceforge.net/): Nintendo NES Emulator
[玩的嗨-vip视频在线解析](https://tv.wandhi.com/go.html)
[Hoppscotch](https://hoppscotch.io/): Postwoman [Hoppscotch](https://hoppscotch.io/): Postwoman
- github: [https://github.com/hoppscotch/hoppscotch](https://github.com/hoppscotch/hoppscotch) - github: [https://github.com/hoppscotch/hoppscotch](https://github.com/hoppscotch/hoppscotch)
...@@ -82,6 +69,12 @@ Logo:https://www.logoly.pro/ ...@@ -82,6 +69,12 @@ Logo:https://www.logoly.pro/
[FeHelper ( 浏览器插件 )](https://www.baidufe.com/fehelper/index/index.html) Web开发者助手 FeHelper [FeHelper ( 浏览器插件 )](https://www.baidufe.com/fehelper/index/index.html) Web开发者助手 FeHelper
[JetBrains](https://www.jetbrains.com/)Essential tools for software developers and teams
[uTools官网 ](http://www.u.tools/)新一代效率工具平台
[Snipaste](https://zh.snipaste.com/index.html) 截图 + 贴图,提高您的工作效率
## 学习资料: ## 学习资料:
2022 黑马程序员 Java 学习路线图 2022 黑马程序员 Java 学习路线图
...@@ -93,3 +86,5 @@ https://www.bilibili.com/video/BV1Kr4y1i7ru ...@@ -93,3 +86,5 @@ https://www.bilibili.com/video/BV1Kr4y1i7ru
## 网站 ## 网站
[电脑爱好者](https://www.cfan.com.cn/) [电脑爱好者](https://www.cfan.com.cn/)
[Road To Coding](https://www.r2coding.com/#/)意为编程自学之路,是自学编程以来所用资源和分享内容的大聚合。
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
[jQuery](https://jquery.com/) [jQuery](https://jquery.com/)
- [jQuery API 3.5.1 速查表](https://jquery.cuishifeng.cn/) - [jQuery API 3.5.1 速查表](https://jquery.cuishifeng.cn/)
- [jQuery 教程](https://www.w3school.com.cn/jquery/index.asp): 极大地简化了 JavaScript 编程 - [jQuery 教程](https://www.w3school.com.cn/jquery/index.asp): 极大地简化了 JavaScript 编程
...@@ -67,11 +67,11 @@ ...@@ -67,11 +67,11 @@
[Sails.js](https://sailsjs.com/)The MVC framework for Node.js [Sails.js](https://sailsjs.com/)The MVC framework for Node.js
[iView UI](https://iviewui.com/docs/guide/install): 一套基于 Vue.js 的高质量UI 组件库 [iView UI](https://iviewui.com/docs/guide/install): 一套基于 Vue.js 的高质量 UI 组件库
[Vant 2](https://vant-contrib.gitee.io/vant/v2/#/zh-CN/) 轻量、可靠的移动端 Vue 组件库 [Vant 2](https://vant-contrib.gitee.io/vant/v2/#/zh-CN/) 轻量、可靠的移动端 Vue 组件库
[Swiper](https://www.swiper.com.cn/)(Swiper master)是目前应用较广泛的移动端网页触摸内容滑动js插件 [Swiper](https://www.swiper.com.cn/)(Swiper master)是目前应用较广泛的移动端网页触摸内容滑动 js 插件
[Moment.js](http://momentjs.cn/) JavaScript 日期处理类库 [Moment.js](http://momentjs.cn/) JavaScript 日期处理类库
...@@ -104,3 +104,7 @@ https://npm.devtool.tech/ ...@@ -104,3 +104,7 @@ https://npm.devtool.tech/
[Express 中文网](https://www.expressjs.com.cn/): 基于 Node.js 平台,快速、开放、极简的 Web 开发框架 [Express 中文网](https://www.expressjs.com.cn/): 基于 Node.js 平台,快速、开放、极简的 Web 开发框架
[Yarn 中文文档](https://yarn.bootcss.com/)快速、可靠、安全的依赖管理工具 [Yarn 中文文档](https://yarn.bootcss.com/)快速、可靠、安全的依赖管理工具
## 文章
[能解决 90% 需求的 js 库](https://juejin.cn/post/7024011415144890405)
# 在线工具
[百度 AI 网络图片文字识别](https://ai.baidu.com/tech/ocr_others/webimage)
[在线工具 tool.lu ](https://tool.lu/)
- [favicon 在线制作](https://tool.lu/favicon/)
- [在线JSON转PHP数组工具](https://uutool.cn/json2php/)
[multiavatar 虚拟头像生成](https://multiavatar.com/)
[Faker API](https://fakerapi.it/it): a collection of completely free APIs that helps web developers and web designers generate fake data in a fast and easy way. No registration is required. No tokens, no authentication.
[DownGit](https://zhoudaxiaa.gitee.io/downgit/): 创建 GitHub 资源下载链接
[玩的嗨-vip视频在线解析](https://tv.wandhi.com/go.html)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册