1. 跨域`header('Access-Control-Allow-Origin:*');`
2. 表单提交时可用一张图片代替提交按钮
```
<input type="image" src="image.gif" name="sub" />
```
点击图片某处后上传表单,并附带参数`sub_x`、`sub_y`来表示用户点击的坐标
3. 定义常量的两种方法
```
define("CONSTANT", "Hello world.");
const CONSTANT \= 'Hello World';
```
和使用define()来定义常量相反的是,使用*const*关键字定义常量必须处于最顶端的作用区域,因为用此方法是在编译时定义的。这就意味着不能在函数内,循环内以及*if*语句之内用*const*来定义常量
4. 错误控制运算符`@`可以忽略掉错误;如果激活了`track_errors`特性,表达式所产生的任何错误信息都被存放在变量`$php_errormsg`中
*foreach*不支持用“@”来抑制错误信息的能力
5. 若for根据数组长度循环,则把count(array)赋予变量而不是不停调用count
```
while (list(, $value) = each($arr)) {
echo "Value: $value\\n";
}
```
6. 避免递归函数/方法调用超过 100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。 无限递归可视为编程错误。
7. 自动加载
```
<?php
spl_autoload_register(function ($class_name) {
require_once $class_name . '.php';
});
$obj = new MyClass1();
$obj2 = new MyClass2();
```
8. php启动fastcgi服务`php-cgi -b 127.0.0.1:9000`
9. php中可以使用SplEnum来实现枚举
10. 携带emoji导出excel,用offlice打开会直接报错,可以这样处理
```
preg_replace_callback('/./u',function(array $match){
return strlen($match[0]) >= 4 ? '' : $match[0];
},$str)
```
11. ```$a = 1; $a = $a++; echo $a;```结果为1
原因:自增运算符++优先级比赋值运算符=的优先级高,`$a = $a++`在计算机实现过程如下:
```
$temp = $a;
$a = $temp + 1;
return $temp;
```故相当于$a等于返回的$temp;最终结果是1;
- php
- 安全
- php7
- 特性
- 编译安装
- 源码整体框架
- 基本变量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制台
- eloquent
- tinker
- composer
- 加密解密
- 小知识点
- 数组
- string
- 代码简洁之道
- 编译
- 语法糖
- lumen
- smarty
- 错题集
- 算法及数据结构
- 线性表结构
- 插入排序
- 冒泡排序
- 数据库
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 备忘
- js
- nodejs
- vue
- css
- electron
- vue
- 语法糖
- colorui使用笔记
- 微信小程序
- 操作系统
- windows
- bat
- 快捷键
- linux
- sed
- 问题解决
- git
- docker
- docker-compose
- 正则表达式
- ps
- lua
- 协议相关
- 问题思索
- Golang
- 测试
- 读取和写入json配置文件
- 类
- 接口
- mod
- gin
- fyne
- 禅道二次开发
- 服务
- apache
- 漏洞配置
- http server优化
- nginx
- 安装
- 面试题库
- freeswitch