我一直试图玩这里发现的这个骰子计算器:

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 – 未捕获错误:访问未声明的静态属性相关推荐

  1. C语言unprinctable错误,“未捕获错误:[$injector:unpr]”,部署后角度

    I have a fairly simple Angular application that runs just fine on my dev machine, but is failing wit ...

  2. 未捕获ReferenceError:未定义$?

    此代码如何引发 未捕获的ReferenceError:未定义$ 以前什么时候可以? $(document).ready(function() {$('#tabs > ul').tabs({ fx ...

  3. php7 捕获语法错误,PHP7 method_exists未捕获错误:函数名称必须是字符串

    这是由于处理间接变量和方法的评估顺序为 incompatible changes: Changes to the handling of indirect variables, properties, ...

  4. 抛出错误_不用try catch,如何机智的捕获错误

    这是多个feature组合使用后实现的神奇效果,在React源码中被广泛使用. 当我读源码看到这里时,心情经历了: 懵逼 -- 困惑 -- 沉思 -- 查文档 -- 豁然开朗 看完此文,相信你也会发出 ...

  5. android函数未定义,未捕获的ReferenceError:尝试访问Android时未定义函数webview

    我在Android中使用WebView.我使用loadDataWithBaseURL加载以下网址:未捕获的ReferenceError:尝试访问Android时未定义函数webview (这里我用 & ...

  6. “远程服务器返回错误: (404) 未找到”的正确解决方法

    转自chuncn原文 "远程服务器返回错误: (404) 未找到"的正确解决方法 在XP下的自动升级程序,放到win2003后无论如何配置IIS.添加读写权限等等,均未解决&quo ...

  7. UncaughtExceptionHandler:java未捕获的异常/错误默认处理方式

    UncaughtExceptionHandler:java未捕获的异常/错误 @(JAVA)[java] java有一部分异常属于运行时异常,这类异常发生时通过会导致程序发生错误,导致退出.如数据下标 ...

  8. VBA IsNull 应用 - 捕获错误并查找未填充的值

    目录 前言 一.什么是Null 二.哪些数据类型可以为空? 三.使用 IsNull 捕获未填充的值 四.用 IsNull 捕捉数据变化 五.使用 IsNull 捕获错误 六.总结 七 补充:Null ...

  9. 未捕获的错误:始终违反:元素类型无效:预期为字符串(对于内置组件)或类/函数,但得到了:对象

    本文翻译自:Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in ...

最新文章

  1. JavaSE(二十四)——冒泡排序、选择排序、直接插入排序以及二分查找
  2. 第四范式获信通院尖峰开源项目及开源人物双料大奖
  3. mysql55和57的区别_技术分享 | MySQL:count(*)、count(字段) 实现上区别
  4. react封装子组件弹框
  5. Java进阶面试资料无偿分享!真香系列
  6. Struts2之控制标签
  7. 爬虫爬取实例与乱码的处理
  8. 跨平台开发与原生开发优劣比较
  9. ObjC学习4-多态、动态类型、动态绑定及异常处理
  10. java基础总结02-语言基础
  11. Java暴力破解Wifi
  12. ThinkPHP6 自定义分页样式 快速配置
  13. 【一些有关GraN-DAG的知识点总结】
  14. Java使用Tomcat服务器打开jsp等文件出现源码的解决办法
  15. 东京丛林 扮演动物的游戏
  16. HEL库入门教程:STM32CubeIDE汉化教程 直接在线安装 简单易懂
  17. 读懂你的大脑——漫话神经元
  18. 学习Java可以从事哪些工作
  19. C++入门>>初识类
  20. 开篇回忆——为什么选择java?

热门文章

  1. 在https上面使用ws不加密_ASP.NET Core 3.1 中使用JWT认证
  2. excel打印预览在哪里_excel预览打印超出范围该怎么办呢?
  3. 迅捷路由器FW325R的无线桥接
  4. spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站...
  5. 添加鼠标右键菜单项(EditPlus为例)
  6. 最简单方法远程调试Python多进程子程序
  7. 经常使用的正則表達式归纳—JavaScript正則表達式
  8. cnBlog的windows live writer 客户端配置
  9. win7和xp无线共享网络问题
  10. 演练nerddinner 问题