我正在尝试制作一个计算器。有一组规则描述哪个变量应该是 <、>、=、!= 等到某个值,例如:
["sum",">","20"]
该表达式由用户编译,他在那里写的内容事先是未知的。也就是说,它可能会出现例如:
["sum",">","20"]
["sum","!=","30"]
["sum","=>","777"]
反过来,我需要使用这个数组并制定一个规则来查找值,例如:
if ($sum > 20){правило сработало, чтото делаем}
if ($sum != 30){правило сработало, чтото делаем}
if ($sum => 777){правило сработало, чтото делаем}
这实际上是一个解决方案吗?我没有经验:-)
如果以 OOP 风格完成,那么您需要描述一个新的数据类型来代表您的规则,就像您对它们的称呼一样。
例如:
以及这些规则的具体实现,例如:
然后您需要创建一个工厂,您将向其传递用户输入的结果,它会基于它创建 RuleInterface 类型的正确实例,您可以从中调用方法
resolve()并获得所需的结果。工厂:
例子: