PHP
(49)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 = ‘
ubuntu 18.04 安装 php 7.3
```
sudo apt update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt
PHP 解析 URL 中的查询参数
举个例子,我想用 PHP 从一个给定的 URL 链接中提取查询参数 goods_id 的值。
## 实现方法
测试用的 PHP 版本:PHP 7.1.20
```
$product_link = "https://mob