-
组合优于继承,指当类间无“is-a”关系时,应优先用成员变量持有对象(组合)而非extends复用代码;因PHP单继承限制,组合更灵活、易测试、符合开闭原则与依赖倒置,仅在语义明确的“is-a”场景才用继承。
-
宝塔面板一键安装GitLab虽便捷但踩坑率高,推荐Docker部署以规避内存不足、环境冲突和升级难题;需严格配置端口/卷/环境变量三类映射,并确保external_url协议与访问方式一致。
-
phpEnv本身不处理Apache的Alias配置,所有Alias必须在Apache实际运行的httpd.conf或httpd-vhosts.conf中设置,且需启用mod_alias模块、配好对应<Directory>权限,并重启Apache生效。
-
Discuz!X3.5在phpEnv下启用Nginx伪静态需三步同步:修改主nginx.conf中location/块内rewrite规则(路径为C:\phpEnv\nginx\conf\nginx.conf或/usr/local/phpenv/nginx/conf/nginx.conf),Discuz后台全局→SEO设置→URL静态化全勾选并保存,最后通过phpEnv面板「重启Nginx」生效;缺一即失败。
-
最常见原因是将超全局变量如$_GET['name']误写为$_GET('name')导致PHP尝试调用非函数变量;其次为动态函数名为空或非字符串、PHP7+数组回调语法不兼容、phpEnv配置注入未定义钩子函数。
-
Apache的DirectoryIndex指令控制默认首页文件顺序,如需优先加载home.php,应修改为DirectoryIndexhome.phpindex.phpindex.htmlindex.htm并重启服务;.htaccess可局部覆盖该配置;Nginx使用index指令替代;PHP内置服务器不支持自动首页,需手动路由。
-
PHP中通过栏目ID获取模型名需先查arctype表得channeltype值,再查channeltype表取typename或nid;DedeCMS无GetChannelModel()函数,应使用GetTypeInfos()或手动关联查询。
-
PHP-FPM进程数不能硬编码,因需根据服务器内存动态计算:先用ps取活跃子进程RSS均值(如38MB),预留20%系统内存后,用可用内存除以单进程内存得出pm.max_children,再配合pm.start_servers等参数及Nginx缓冲区调优,方能避免OOM或并发浪费。
-
XAMPPforWindows默认已编译SOAP支持,只需在phpinfo()显示的正确php.ini中启用extension=soap并重启Apache,再验证WSDL可访问及参数结构匹配即可。
-
PHP本地内存不足报错需分CLI和Web环境分别调整:先用php--ini和php-r确认配置路径及当前限制,CLI可临时加-d参数或修改对应php.ini,Web需改其专用php.ini或在入口文件用ini_set;注意Xdebug、旧版Composer等干扰因素。
-
PHP动态添加Linux定时任务需确保用户上下文一致、构造合法crontab行写入临时文件、用crontab命令原子替换、验证写入结果,并可选systemdtimer替代。
-
XAMPPforWindows中SOAP扩展默认已编译,只需在phpinfo()显示的真实php.ini中取消extension=soap注释、确认extension_dir正确、重启Apache,并用class_exists('SoapClient')验证。
-
PHP无法直接将PHP文件转为MP4;实际仅两类场景:①合并PHP生成的图像序列为MP4;②用PHP调用FFmpeg转换真实视频文件为MP4。
-
PHP无法直接读取内存带宽或DDR通道吞吐量,因其运行在用户态且无内核权限,只能通过shell_exec()调用pcm-memory.x、perf等系统工具间接获取,但受限于权限、硬件差异和容器环境。
-
宝塔面板在VMwareNAT模式下无法访问,需同时满足四点:虚拟机监听0.0.0.0:8888、VMware配置端口转发(如宿主机8080→虚拟机192.168.x.x:8888)、关闭firewalld和SELinux拦截、拼接安全入口路径(如/284f39f6/)。