$a ?? 0 等同于 isset($a) ? $a : 0。
$a ?: 0 等同于 $a ? $a : 0。
empty: 判断一个变量是否为空(null、false、00、0、'0′、』这类,都会返回true)。
isset: 判断一个变量是否设置(值为false、00、0、'0′、』这类,也会返回true)。
$a ?? 0 等同于 isset($a) ? $a : 0。
$a ?: 0 等同于 $a ? $a : 0。
empty: 判断一个变量是否为空(null、false、00、0、'0′、』这类,都会返回true)。
isset: 判断一个变量是否设置(值为false、00、0、'0′、』这类,也会返回true)。
PHP编译安装
此博客为作者原创,转载请在醒目的地方注明来源。
1.安装php7.4.5
0.安装之前先安装依赖包
命令如下:
yum install gcc gcc++ libxml2-devel sqlite-devel
(centos8安装gcc++提示找不到,请安装gcc-c++)
1.首先下载源码包:(下载地址:https://www.php.net/downloads.php)
这儿下载7.4.5,命令如下:
wget https://www.php.net/distributions/php-7.4.5.tar.gz
(如果提示wget 命令找不到,请先使用yum 安装,安装命令:yum install wget)
2.解压
命令如下:
tar -zxvf php-7.4.5.tar.gz
3.编译安装php
1.进入php解压后的目录,命令如下:
cd php-7.4.5
2.预编译:选择php安装目录,使用fpm管理器(PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到),命令如下(其他扩展可在此加入,也可单独编译安装,会另出教程):
./configure --prefix=/usr/local/php-7.4.5 --enable-fpm
耐心等待几十秒,出现如下提示:
Thank you for using PHP.
3.执行命令:
make && make install
耐心等待。。。
会出现以下信息:
Build complete.
Don't forget to run 'make test'.
编译完成!
4.配置php-fpm
0.复制文件,命令如下:
cp /usr/local/php-7.4.5/etc/php-fpm.conf.default /usr/local/php-7.4.5/etc/php-fpm.conf
1.进入目录,复制配置文件
cd /usr/local/php-7.4.5/etc/php-fpm.d
cp www.conf.default www.conf
之后编辑www.conf文件,命令如下:
vim www.conf
将以下
user = nobody
group = nobody
改为
user = www
group = www
此时系统还没有此用户(www),需要添加。
2.添加用户www
groupadd www
useradd -g www www
5.验证php
输入命令:
/usr/local/php-7.4.5/bin/php -v
会看到如下信息:
PHP 7.4.5 (cli) (built: May 6 2020 16:12:44) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
6.启动php-fpm
命令如下:
/usr/local/php-7.4.5/sbin/php-fpm
可使用如下命令查看进程:
ps aux|grep php
会看到php-fpm进程已经存在,有一个master process,使用的配置文件为:/usr/local/php-7.4.5/etc/php-fpm.conf。
想要在全局使用php命令,可查看此博客:https://qdblogs.com/?id=28
打赏一分也是爱!
关注小程序,查看新鲜内容!
此博客为作者原创,转载请在醒目的地方注明来源。
从PHP5.3开始, date新增了一系列修正短语, 来明确这个问题, 那就是”first day of” 和 “last day of”, 也就是你可以限定好不要让date自动”规范化”:
如下:
var_dump(date("Y-m-d", strtotime("last day of -1 month", strtotime("2017-03-31"))));
//输出2017-02-28
var_dump(date("Y-m-d", strtotime("first day of +1 month", strtotime("2017-08-31"))));
//输出2017-09-01
var_dump(date("Y-m-d", strtotime("first day of next month", strtotime("2017-01-31"))));
//输出2017-02-01
var_dump(date("Y-m-d", strtotime("last day of last month", strtotime("2017-03-31"))));
//输出2017-02-28
解决方法:
使用php的内库libbcmath(自 PHP 4.0.4,libbcmath 随同 PHP 一起发布。该扩展不需要任何外部的库)
$a = bcdiv(100, 100, 2); //除法 那么$a = 1.00;
bcadd — 2个任意精度数字的加法计算
bccomp — 比较两个任意精度的数字
bcdiv — 2个任意精度的数字除法计算
bcmod — 对一个任意精度数字取模
bcmul — 2个任意精度数字乘法计算
bcpow — 任意精度数字的乘方
bcpowmod — Raise an arbitrary precision number to another, reduced by a specified modulus
bcscale — 设置所有bc数学函数的默认小数点保留位数
bcsqrt — 任意精度数字的二次方根
bcsub — 2个任意精度数字的减法
php为了数组与url参数相互转换提供了两个函数:
1,数组转换为带&的URL的字符串
例如:
$arr =['title'=>'我是小白','name'=>'真的很白','text'=>'但是决不放弃']; $res =urldecode(http_build_query($arr)); var_dump($res);exit; 结果为:string(60) "title=我是小白&name=真的很白&text=但是决不放弃";
2,带&的URL的字符串转换为数组
例如:
$str = "title=我是小白&name=真的很白&text=但是决不放弃"; parse_str($str, $res); //第一个参数为字符串,第二个参数为结果 var_dump($res); exit;