PHP开发错误锦集(持续更新)
1、trait
命名问题。
问题:trait
里定义的方法找不到
<?php
namespace app\controllers;
trait Example
{
public function example();
}
class Foo
{
use Example;
public function __construct()
{
$this->example();
}
}
PHP message: PHP Fatal error: Call to undefined method app\controllers\FooController::example() in path/controllers/FooController.php on line xx
解决:
trait 与 trait 里写的方法名称不可以相同。将上面的 trait 名称 Example 和 方法名 example() 改成不一样就可以了。
2、你的 opcache
真的关了吗?
在开发过程中,当你修改了代码,可实际上却输出的是改之前
的内容。
检测是否关闭了 opcache。
var_dump(ini_get('opcache.enable'));
如果为 0,刚为关闭。
最近在用 laradock
这个 docker
环境,我在配置里改了 PHP_FPM_INSTALL_OPCACHE=false
,并且也注释了 ./php-fpm/opcache.ini
里的所有东西,又重新编译了容器。但结果就是没关掉 opcache
!
最后我发现,不能注释掉,感觉是opcache
默认开启的。我把 ./php-fpm/php5.6.ini
和 ./php-fpm/opcache.ini
里明确指定了 opcache.enable = 0
、opcache.enable_cli=0
。这才解决。
一个字,烦~
3、关于空间名大小写问题
问题:在A类
内实例化B类
,并调用B类
内的C方法
,第一次运行,没用错误。这时修改C方法
,重新运行,结果却是修改之前的代码。
解决:一开始怀疑有opcache
缓存,所以关掉了opcache
。结果仍解决不了。我的docker用的是 ubuntu
,我把代码放到了 centos
上,结果报错 - “A类实例化B类的时候,找不到B类”
。可明明在ubuntu
上没问题啊。一经检查,发现 B类空间名
中的路径
与 B类
文件路径存在不一致
(主要是有一个字母的大小写不同,其它部分都一样)。
于是把B类的空间名的大小写与所在文件路径的路径
(主要指B类所在文件的上级文件夹的命名)大小写统一
,问题解决了。
不是缓存问题~
原文地址:https://segmentfault.com/a/1190000016109590
PHP开发错误锦集(持续更新)的更多相关文章
- DataStage 错误集(持续更新)
DataStage 错误集(持续更新) DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 D ...
- iOS开发系列文章(持续更新……)
iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...
- C# net core程序调试错误集(持续更新)
目录 C#程序调试错误集 1.依赖注入错误System.InvalidOperationException: Unable to resolve service for type 'xxx' whil ...
- Android开发问题汇总(持续更新)
在Android开发中,总会有一些很小的问题.由于我们的不仔细,很容易忽略掉,从而导致在该问题上花费了很多的时间,造成工作进度的延迟. 为此,在这里做一下记录,避免再次浪费许多时间在这些问题上. 1. ...
- android开发常用组件【持续更新中。。。】
UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...
- Python:常见错误集锦(持续更新ing)
初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...
- Pandas 错误笔记(持续更新)
更新至2018.5.1 字典生成DataFrame 今天一个字典生成一个DataFrame,采用了以下形式,每一个value都是一个数(不是vector) df = pd.DataFrame({ 'i ...
- Linux 搭建Hadoop集群错误锦集
一.Hadoop集群配置好后,执行start-dfs.sh后报错,一堆permission denied zf sbin $ ./start-dfs.sh Starting namenodes on ...
- mongodb管理副本集(持续更新中)
许多维护工作不能在备份节点上完成 因为要写操作,也不能在主节点上进行,这就需要单机模式启动服务器, 是指重启成员服务器,让他成为一个单机运行的服务器,而不再是副本集中的一员(临时的) 在单机 ...
随机推荐
- 常用的java方法,为程序添点小功能
一.生成随机数 Random类使用示例 使用Random类,一般是生成指定区间的随机数字,下面就一一介绍如何生成对应区间的随机数字.以下生成随机数的代码均使用以下Random对象r进行生成: Rand ...
- luogu3959 宝藏 搜索+剪枝
题目大意 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是 ...
- Quartz.net使用入门(三)
Windows服务,自定义安装,卸载服务+Quartz.net app.config配置文件 <?xml version="1.0"?> <configurati ...
- Codeforces--618A--Slime CombiningCrawling(数学)
Slime CombiningCrawling in process... Crawling failed Time Limit:2000MS Memory Limit:262144KB ...
- luogu 3834 【模板】可持久化线段树 1(主席树)
我这种菜鸡还是%一下棒神比较好 #include<iostream> #include<cstdio> #include<cmath> #include<cs ...
- PCB genesis 大孔扩孔(不用G84命令)实现方法
PCB钻孔时,当钻刀>6.3mm时,超出钻孔范围,钻孔工序是没有这么大的钻刀,当这种情况,工程CAM会都采用G84命令用小孔扩孔的方式制作, 在这里介绍一种如果不用G84命令,用程序实现将大孔生 ...
- PCB Genesis脚本 C#调用Javascript
曾经用node.js测试写Genesis脚本失败了,这次借助开发PCB规则引擎的机会(基于JS V8引擎与.net深度交互性), 验证一下Javascript是否可用于写Genesis脚本. 一.测试 ...
- 9.22 NOIP模拟题
吉林省信息学奥赛 2017 冬令营 ...
- [Swift通天遁地]九、拔剑吧-(6)使用开源类库快速搭建强大的侧边栏项目
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- iview日期选择框,获取的日期总是少一天
使用iview的datepicker时间选择器发现获取的value值是比实际要少一天,严格来说应该是时间格式不一样,datepicker获取的时间是UTC时间 格式,也就是:yyyy-MM-ddTHH ...