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管理副本集(持续更新中)
许多维护工作不能在备份节点上完成 因为要写操作,也不能在主节点上进行,这就需要单机模式启动服务器, 是指重启成员服务器,让他成为一个单机运行的服务器,而不再是副本集中的一员(临时的) 在单机 ...
随机推荐
- node npm Bower
Download | Node.js https://nodejs.org/en/download/ wget https://nodejs.org/dist/v8.11.3/node-v8.11.3 ...
- python实现自动重启本程序的方法 技术的漩涡
python实现自动重启本程序的方法 http://www.jb51.net/article/69174.htm import requests, time url_l = []with open(' ...
- 布局技巧4:使用ViewStub
多亏了<include />标签,在Android里,很容易就能做到共享和重用UI组件.在Android开发中,很容易就能创建出复杂的UI结构,结果呢,用了很多的View,且其中的一些很少 ...
- ASP.NET MVC 4 Content Map
https://msdn.microsoft.com/en-us/library/gg416514(v=vs.108).aspx The Model-View-Controller (MVC) pat ...
- 分类(category)是门学问
分类的精细程度表现了人类的文明程度. 1. 学科分类 cybernetics:控制论:
- js中的slice()、substring()、substr()、split()、join()、indexof()
在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...
- ckeditor详细设置
CKEditor 3 JavaScript API Documentation : http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.con ...
- codeforce 杀题计划
先尽量做Div 1 A B 想做难题时做C 全天学竞赛时每天至少两道Div2 (算法数据结构没学的先过,题面很长的......也先过 我的英语啊...)
- [laravel]用户异地登录后踢掉之前的登录
不同用户和服务器之间由一个唯一的session来区分,但是一般情况下不同的session对应的用户model可以是同一个. 为了实现只能同时在一个地方登陆,可以在用户的字段里增加一个last_sess ...
- (转)Vuex简单入门
今天试了一下Vuex,感觉跟Redux的实现思想类似.再此,简单地总结一下. 什么是Vuex 在Vue中,多组件的开发给我们带来了很多的方便,但同时当项目规模变大的时候,多个组件间的数据通信和状态管理 ...