PHP
(51)安装最新版本的 composer
用 ubuntu apt 安装的 composer 版本过低,所以不推荐:
```
> sudo apt install composer
> composer -V
Composer 1.6.3 2018-01-31 16:2
Ubuntu 18.04 安装 PHP 7.4.8
为了测试升级 Laravel 6,所以把本地 Windows WSL Ubuntu18.04 开发环境的 PHP 版本升级一下。实际是全新安装,这个新买的笔记本居然一直没有装 PHP。
## apt install PHP 7.4
PHP 表达式前加 at 符号 @ 的作用是什么
今天在一段 PHP 代码中看到一个诡异的写法,即在一个变量名的美元符号前加了个 at 符号 @。
## 官方文档
https://www.php.net/manual/zh/language.operators.errorcontr
PHP 5.3 explode 结果取值报错:syntax error, unexpected '['
今天在线上更新代码后报错:
> syntax error, unexpected '['
报错行是:
```
$category_id = explode("-", $category_id)[0];
```
#
php foreach 数组添加新属性
之前没注意这个问题,今天发现通过 foreach 遍历数组时,新增的属性并没有添加到数组中。
```
foreach ($tags as $tag) {
$tag["name"] = "new name";
}
```
PHP 发送 HTTP 请求
在不使用三方库的情况下,例如 guzzle,PHP 发送 HTTP 请求。
## 方法一 curl
```
$url = "https://api.domain.com/test";
$ch = curl_init();
$t
PHP 分割字符串时指定多个分隔符
在使用 PHP Laravel 实现博客文章打多标签的功能,输入时标签以英文逗号为分隔符。
但是 PHP 的字符串分割函数 explode 只支持单个分隔符:
```
$tags = explode(",", $tags_st
PHP 获取请求的域名及协议
实在不想查看 ThinkPHP 的文档,所以就使用纯 PHP 的实现,获取请求的域名及协议。
```
function site_url() {
$protocol = (!empty($_SERVER['HTTPS']) &&
重定向跳转引起的 PHP $_Post 和 php://input 数据为空
今天在 ThinkPHP 下测试获取 HTTP 请求 POST 数据时,发现无论怎么测试,都获取不到 POST 的数据。
- $_POST 为空
- php://input 也为空
但是在另外一台服务器上测试,却是正常可以获
PHP 7.1 报错:Cannot use string offset as an array
有一段在 PHP 5 下运行正常的代码,放到了 PHP 7.1 环境下执行报错。
报错信息为:
> Cannot use string offset as an array
## 代码片段
```
$data = ‘