使用thinkPHP框架,用环境变量遇到了个很坑的问题,.env
里的文件就是读不出来,windows 下没有问题,mac 和 linux 有问题。最后通过逐步排查,发现数据库密码中带个叹号,如果用加上单引号可以解决这个问题。例如 paswword = 'yaddddd?!'
PHP 精确运算函数bcadd,bcsub,bcmul,bcdiv
php 在使用加减乘除等运算符计算的时候会把未定义类型的操作数转成浮点数然后进行算术运算
有句话说的好,永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数
浮点数运算示例
1 | $a = '49'; |
正常来讲这里应该返回 0.2 吧,可实际运行结果是 0.020000000000003
php提供了高精度计算的函数库,实际上就是为了解决这个浮点数计算问题而生的
VUE中使用Three.js所遇到的问题
由于公司要使用动画效果,分析了一段时间以后,决定使用Three.js,一般官网给的demo大部分都是在HTML静态界面中应用引用,但是自己想使用import引用,那么问题就来了,先上之前安装方法和引用方法:
1 | npm install three --save |
项目引用上以后,发现问题还真不少
Mac下提示APP已损坏,打不开,请移至废纸篓
在Windows中使用Linux子系统WSL2
WSL和WSL2的区别
和WSL相比,WSL更接近于一个独立的Linux系统,可以运行Docker,而且性能更好(以前就是因为WSL运行laravel速度慢放弃了)。但是WSL2读写Windows挂载盘的速度比WSL更慢,所以不能把代码放在Windows系统下,然后在WSL2中运行。不过微软给了解决方案,就是使用vscode的Remote-WSL扩展,可以在vscode中直接编辑WSL2环境下的代码。
还有一点是每次重启电脑,或者重启WSL2,WSL2的本地IP都会变,这就导致每次重启hosts、SFTP、MySQL的IP都要修改,一个变通的方法是,既然固定不了wsl2的ip地址,那么就在启动wsl2后主动给它设置一个ip地址。或者编辑win10的hosts文件自定义个域名(如 wsl.test
),在Navicat、FTP客户端使用wsl.test
作为URL地址,然后每次重启后更新hosts中的域名ip。(注:win10浏览器中也可以直接使用localhost访问wsl的网站,但是不能用来连接FTP)