-
PHP函数变量不可见是因作用域限制,解决方法有五:一、参数传递;二、global声明;三、$GLOBALS数组;四、static保持状态;五、闭包use绑定。
-
PHP二维数组扁平化有五种方法:一、array_merge(...$arr)适用于PHP≥7.4的严格二维数组,重置键名;二、foreach循环手动追加,兼容所有版本,顺序保留但丢键名;三、array_reduce($arr,'array_merge',[])函数式写法,强制重排数字键;四、RecursiveIteratorIterator+RecursiveArrayIterator支持任意深度,仅提取标量值;五、array_walk_recursive()最简洁处理混合嵌套,只收集终端值。
-
若PHP页面无法显示或被下载,是因服务器未配置PHP解析。需通过本地环境(如XAMPP)、Nginx+PHP-FPM、命令行、在线平台等方式运行,并检查配置与语法确保正确解析。
-
PHP中GET参数的空格被编码为+号时,urldecode()无法将其还原为空格,应使用str_replace('+','',rawurldecode($val))组合处理,避免使用已弃用的urldecode()。
-
PHP中foreach遍历数组有两类语法:一是foreach($arrayas$value)仅获取值,适用于无需键名的场景;二是foreach($arrayas$key=>$value)同时获取键与值,适用于需键名判断或处理关联数组的情形。
-
Composer访问私有Git仓库需密钥,因其底层调用gitclone,而私有库要求身份认证;SSH密钥最稳妥,需生成、添加公钥至平台、使用SSH格式URL,并确保PHP进程用户对应密钥与权限。
-
Dreamweaver不运行PHP,其PHP版本设置仅影响语法高亮和代码提示:在“站点→管理站点→编辑→服务器→高级设置”中手动选择,须严格匹配实际部署环境的PHP版本,否则导致误报错或漏报错。
-
“找不到文件”错误主因是路径不正确,需检查当前工作目录、改用__DIR__或绝对路径、开启错误报告、排查open_basedir限制及文件权限与拼写。
-
去除PHP数组字符串双引号需分场景:一、避免JSON双重编码并正确解码;二、区分调试输出与真实数据;三、用str_replace清洗字面引号;四、用array_map+trim统一处理;五、检查旧版转义残留。
-
应使用is_array($arr)&&count($arr)>0判断PHP数组是否非空,兼顾类型校验与元素存在性;count()需配合isset()防Notice;empty()简洁但可能误判含0值数组;array_key_exists()适用于特定键校验;reset()+key()可安全检测首键。
-
strlen()统计字节数,将\n、\r各计1字节,\r\n计2字节;统计可见字符长需trim()预处理;查换行数用substr_count();含中文等多字节字符时须用mb_strlen()。
-
curl_multi_exec可实现PHP多URL并发请求,需为每个URL独立初始化cURL句柄并加入multi句柄,通过循环调用curl_multi_exec+curl_multi_select驱动执行,响应体用curl_multi_getcontent获取,超时等选项须设在单个句柄上,并逐个检查curl_errno判定真实错误。
-
filesize()获取字节数后需转为整型与字节阈值比较,上传文件优先用$_FILES['xxx']['size'],注意检查$_FILES'xxx'状态,大文件超2GB时在32位系统需用stream_stat()兜底。
-
getenv()不能可靠获取本机IP,因它仅读环境变量且SERVER_ADDR在不同SAPI下表现不一;推荐用gethostbyname(gethostname())跨平台获取主机名对应IPv4地址,或Linux下用ip命令读取指定网卡IP。
-
多语言网站分页必须保留语言参数、翻译所有文案、按语言隔离数据库查询、动态生成SEO标签。需显式拼接lang参数,用翻译函数处理文案,SQL加WHERElang=?,缓存key含语言,hreflang与canonical动态生成且缺页返回404。