php7 返回静态类,PHP7 – 未捕获错误:访问未声明的静态属性
我一直试图玩这里发现的这个骰子计算器:
https://github.com/ringmaster/dicecalc
以前一切都按预期运行,我可以“滚动”3d6,3d6 2,1d12等没有任何问题.
将我的vps升级到带有php7的Ubuntu 16.04之后,我开始收到以下错误:
mod_fcgid: stderr: PHP Fatal error: Uncaught Error: Access to undeclared static property: DiceCalc\CalcOperation::$operators in /public_html/dice/src/DiceCalc/CalcOperation.php:34
我已经对访问未声明的静态属性进行了一些搜索,但无济于事.我试过在每个上面都返回static ::这是它引用的CalcOperation.php:
/**
* Class CalcOperation
*
* @package DiceCalc
* @author Owen Winkler
* @license MIT http://opensource.org/licenses/MIT
*/
namespace DiceCalc;
class CalcOperation {
/**
* @param string $operator
* @param $operand2
* @param $operand1
*
* @throws \Exception
* @return bool|number
*/
public function calc($operator, $operand1, $operand2) {
$operators = array(
'+' => 'add',
'*' => 'multiply',
'=' => 'equalto',
' 'lessthan',
'>' => 'greaterthan',
'^' => 'exponent',
'/' => 'divide',
'-' => 'subtract'
);
if (isset($operators[$operator])) {
return self::$operators[$operator](self::reduce($operand1), self::reduce($operand2));
}
throw new \Exception('Unknown operator "' . $operator . '".');
}
/**
* @param $operand
*
* @return number|string
* @throws \Exception
*/
public function reduce($operand) {
if (is_numeric($operand)) {
return $operand;
} elseif ($operand instanceof Calc) {
return $operand();
}
throw new \Exception('This is not a number');
}
/**
* @param number $operand1
* @param number $operand2
*
* @return bool|number
*/
public function add($operand1, $operand2) {
return $operand1 + $operand2;
}
/**
* @param number $operand1
* @param number $operand2
*
* @return bool|number
*/
public function multiply($operand1, $operand2) {
return $operand1 * $operand2;
}
/**
* @param number $operand1
* @param number $operand2
*
* @return bool|number
*/
public function subtract($operand1, $operand2) {
return $operand1 - $operand2;
}
/**
* @param number $operand1
* @param number $operand2
*
* @return bool|number
*/
public function divide($operand1, $operand2) {
return $operand1 / $operand2;
}
/**
* @param number $operand1
* @param number $operand2
*
* @return bool|number
*/
public function exponent($operand1, $operand2) {
return pow($operand1, $operand2);
}
/**
* @param number $operand1
* @param number $operand2
*
* @return bool
*/
public function greaterthan($operand1, $operand2) {
return $operand1 > $operand2;
}
/**
* @param number $operand1
* @param number $operand2
*
* @return bool
*/
public function lessthan($operand1, $operand2) {
return ($operand1 < $operand2);
}
/**
* @param number $operand1
* @param number $operand2
*
* @return bool
*/
public function equalto($operand1, $operand2) {
return ($operand1 == $operand2);
}
}
这是调用类的行:
$stack[] = CalcOperation::calc($step, $r2, $r1);
我刚刚开始围绕课程等等,所以我不知道如何解决这个问题.我已经尝试切换返回self ::返回static ::在我通过搜索这里找到的其他一些东西.我现在才被困住了.有人能帮忙吗?
php7 返回静态类,PHP7 – 未捕获错误:访问未声明的静态属性相关推荐
- C语言unprinctable错误,“未捕获错误:[$injector:unpr]”,部署后角度
I have a fairly simple Angular application that runs just fine on my dev machine, but is failing wit ...
- 未捕获ReferenceError:未定义$?
此代码如何引发 未捕获的ReferenceError:未定义$ 以前什么时候可以? $(document).ready(function() {$('#tabs > ul').tabs({ fx ...
- php7 捕获语法错误,PHP7 method_exists未捕获错误:函数名称必须是字符串
这是由于处理间接变量和方法的评估顺序为 incompatible changes: Changes to the handling of indirect variables, properties, ...
- 抛出错误_不用try catch,如何机智的捕获错误
这是多个feature组合使用后实现的神奇效果,在React源码中被广泛使用. 当我读源码看到这里时,心情经历了: 懵逼 -- 困惑 -- 沉思 -- 查文档 -- 豁然开朗 看完此文,相信你也会发出 ...
- android函数未定义,未捕获的ReferenceError:尝试访问Android时未定义函数webview
我在Android中使用WebView.我使用loadDataWithBaseURL加载以下网址:未捕获的ReferenceError:尝试访问Android时未定义函数webview (这里我用 & ...
- “远程服务器返回错误: (404) 未找到”的正确解决方法
转自chuncn原文 "远程服务器返回错误: (404) 未找到"的正确解决方法 在XP下的自动升级程序,放到win2003后无论如何配置IIS.添加读写权限等等,均未解决&quo ...
- UncaughtExceptionHandler:java未捕获的异常/错误默认处理方式
UncaughtExceptionHandler:java未捕获的异常/错误 @(JAVA)[java] java有一部分异常属于运行时异常,这类异常发生时通过会导致程序发生错误,导致退出.如数据下标 ...
- VBA IsNull 应用 - 捕获错误并查找未填充的值
目录 前言 一.什么是Null 二.哪些数据类型可以为空? 三.使用 IsNull 捕获未填充的值 四.用 IsNull 捕捉数据变化 五.使用 IsNull 捕获错误 六.总结 七 补充:Null ...
- 未捕获的错误:始终违反:元素类型无效:预期为字符串(对于内置组件)或类/函数,但得到了:对象
本文翻译自:Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in ...
最新文章
- JavaSE(二十四)——冒泡排序、选择排序、直接插入排序以及二分查找
- 第四范式获信通院尖峰开源项目及开源人物双料大奖
- mysql55和57的区别_技术分享 | MySQL:count(*)、count(字段) 实现上区别
- react封装子组件弹框
- Java进阶面试资料无偿分享!真香系列
- Struts2之控制标签
- 爬虫爬取实例与乱码的处理
- 跨平台开发与原生开发优劣比较
- ObjC学习4-多态、动态类型、动态绑定及异常处理
- java基础总结02-语言基础
- Java暴力破解Wifi
- ThinkPHP6 自定义分页样式 快速配置
- 【一些有关GraN-DAG的知识点总结】
- Java使用Tomcat服务器打开jsp等文件出现源码的解决办法
- 东京丛林 扮演动物的游戏
- HEL库入门教程:STM32CubeIDE汉化教程 直接在线安装 简单易懂
- 读懂你的大脑——漫话神经元
- 学习Java可以从事哪些工作
- C++入门>>初识类
- 开篇回忆——为什么选择java?
热门文章
- 在https上面使用ws不加密_ASP.NET Core 3.1 中使用JWT认证
- excel打印预览在哪里_excel预览打印超出范围该怎么办呢?
- 迅捷路由器FW325R的无线桥接
- spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站...
- 添加鼠标右键菜单项(EditPlus为例)
- 最简单方法远程调试Python多进程子程序
- 经常使用的正則表達式归纳—JavaScript正則表達式
- cnBlog的windows live writer 客户端配置
- win7和xp无线共享网络问题
- 演练nerddinner 问题