-
必须用curl_error($ch)和curl_errno($ch)获取具体错误,如“Couldnotresolvehost”;配合curl_getinfo($ch,CURLINFO_HTTP_CODE)区分网络层(0)与HTTP层(400/502)错误。
-
PHP浮点数转整型为什么经常丢精度因为PHP底层用C的double类型存浮点数,二进制无法精确表示很多十进制小数(比如0.1),转整型前哪怕只是var_dump(0.1+0.2)都可能输出0.30000000000000004。直接(int)或intval()会直接截断小数部分,不四舍五入,也不处理隐式精度误差。floor()、ceil()、round()、(int)到底怎么选关键看你要的是“截断”、“向下取整”、“向上取整”,还是“四舍五入”。它们对负数行为完全不同,且round()默认使用
-
PHP时间日期函数包括:一、time()获取当前Unix时间戳;二、date()按格式字符串格式化时间;三、getdate()返回时间关联数组;四、strtotime()解析日期字符串为时间戳;五、date_default_timezone_set()设置时区。
-
<p>PHP大数运算不能直接用+-*/,因int和float有精度上限,超限后结果失真;须用BCMath扩展的字符串函数(如bcadd、bcmul),注意scale设置、参数为字符串且扩展需启用。</p>
-
PHP变量作用域由语言硬编码决定,无法调整,只能通过global、$GLOBALS、use、$this->等显式传递值;常见错误是未声明就访问变量,导致Undefinedvariable警告。
-
需完成服务安装、PHP扩展配置及站点缓存规则设置三步:一、宝塔软件商店安装Memcached服务端;二、为PHP版本安装memcached扩展并启用;三、配置session存储路径或应用代码调用,最后通过测试文件和命令验证连接与缓存生效。
-
七牛云SDKv7+已移除Qiniu\Auth,改用Qiniu\Auth\Authorization鉴权;需动态生成uploadToken、检查返回error字段、图片处理需拼接URL参数或调用pfop。
-
PHP中解析日期字符串最稳妥用date_create()或newDateTime(),但需检查false;歧义格式建议用DateTime::createFromFormat()严格匹配;转字符串必用format()方法,注意时区影响。
-
使用命名空间可避免PHP代码中的命名冲突并提升可维护性。首先在文件首行用namespaceApp\Controllers;声明命名空间,对应目录结构如src/Controllers/,命名采用大驼峰法。通过useApp\Models\User;导入类,同名类可用as设置别名。多级命名空间如App\Services\Payment应匹配src/Services/Payment/路径。在命名空间内调用全局函数时通常无需反斜杠,但存在同名函数需用\strlen()指向全局。结合PSR-4规范,在composer
-
必须存整数单位(如分、厘),因浮点精度丢失、四舍五入不一致、数据库截断及多币种精度差异(JPY=0位、CNY=2位、BHD=3位)等会导致资损;PHP应使用bcdiv/bcmul处理,数据库用BIGINT,API收发统一整数或带精度字符串。
-
递归通过函数自调用实现重复任务,循环则在同作用域内反复执行代码块。1、递归每次调用创建新栈帧,内存开销大,易导致栈溢出;循环仅更新变量,内存稳定。2、递归代码简洁,适合树形结构等自相似问题;循环逻辑线性,易于调试维护。3、递归因函数调用开销性能较低,尤其无尾递归优化;循环执行效率高,适合性能敏感场景。4、递归适用于嵌套层级不确定的情况,如目录遍历;循环适用于已知次数或需精确控制的迭代。
-
PHP整型变量本身不限制范围,靠手动校验PHP的int类型由底层平台决定(通常是32或64位),语言层不提供“声明时限定取值区间”的语法。所谓“限制范围”,本质是运行时对输入值做条件判断和拦截——不是类型系统的事,是业务逻辑的事。常见错误现象:filter_var($x,FILTER_VALIDATE_INT,['options'=>['min_range'=>1,'max_range'=>100]])返回false,但开发者误以为这是类型定义失败,其实它只是校验失败;还有人用cas
-
端口被占导致Swoole启动报“Addressalreadyinuse”错误,根本原因是操作系统禁止重复绑定IP+端口;应先用netstat/ss(Linux)或netstat+tasklist(Windows)定位并kill对应PID进程,或稳妥更换为1024–49151间未占用端口。
-
PHP中“常量数组”指值为数组的不可变常量,自5.6起支持,可用define()或const定义全局/类中字面量数组;7.4+支持有限表达式和解包;类常量不可修改、不可继承覆盖;复杂需求可用只读ArrayObject模拟。
-
PHP8.4尚未发布,当前应聚焦PHP8.2+中preg_replace的安全高效用法:支持数组批量替换但需模式与替换等长对齐;优先用str_replace或strtr替代正则以提升性能与安全性。