关于php的开发,有几个细节设定,需要知悉下:
在项目的init.php 或 index.php 或 api.php
1. bcscale(18);
表示bc函数,默认小数点位数。
没有设定的话,默认为0,表示整数结果处理。
会出现bcadd ,bcsub 等 截取值为整数。
之前有log出现后台强制放币时,balance值计算不对
bcscale()
函数是PHP中的内置函数。它为所有bc数学函数调用设置默认的缩放参数。当我们在程序中调用函数bcscale()时,此函数中传递的参数因此成为默认的比例因子,默认情况下为零。
语法:
int bcscale($ scale)
参数:此函数接受单个参数 $ scale 并且是int类型并且是必需的。此参数表示所有bc数学函数的函数调用结果中小数点后出现的位数。其默认值为零。
返回值:此函数返回旧的刻度值。
2. date_default_timezone_set(“Asia/Shanghai”);
表示php处理时的时区设定
没有设定的话,默认为0时区,(或者有php的ini中配置)
上面设定的是东八区 上海
(该值后续有空时,会统一为0时区 ,mysql数据库也会修订为0时区,页面栏位的时间再显示由页面根据本机时区再计算)
date_default_timezone_set()
函数设置脚本中所有日期/时间函数使用的默认时区。
语法
date_default_timezone_set(timezone);
返回值:如果 timezone 不合法则返回 FALSE,否则返回 TRUE。
3. ‘charset’ => ‘utf8mb4’,
项目中php通过laravel 操作数据库,
相关传值的编码格式
$capsule = new \Illuminate\Database\Capsule\Manager; $capsule->addConnection([ "driver" => 'mysql', "host" => getenv("DB_HOST"), "port" => getenv("DB_PORT"), "database" => getenv("DB_DATABASE"), "username" => getenv("DB_USERNAME"), "password" => getenv("DB_PASSWORD"), 'charset' => 'utf8mb4', ]);
不设定该值时,前台页面输入的中文,存入mysql表后是乱码
charset 属性规定在外部脚本文件中使用的字符编码。
如果外部文件中的字符编码与主文件中的编码方式不同,就要用到 charset 属性。
默认的字符编码是 ISO-8859-1。