Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-是否可以直接使用存储在变量中的方程结果?_Php_Variables_Equations - Fatal编程技术网

php-是否可以直接使用存储在变量中的方程结果?

php-是否可以直接使用存储在变量中的方程结果?,php,variables,equations,Php,Variables,Equations,比如说 $var = '10/2'; 有没有一种方法可以让我轻松地从中输出值5 比如说: $foo = ($var) + 5; 我希望$foo的值为10 目前,我知道的最好的方法是分解$var,然后用$var[0]除以$var[1]。有没有更快的办法 另一种提问方式;有没有办法告诉系统将“10/2”视为一个等式而不是字符串?可能是这样的解决方案 $foo = eval('return '.$var +5 .';'); print $foo; eval需要一行代码。。因此,您可以构建一个有效

比如说

$var = '10/2';
有没有一种方法可以让我轻松地从中输出值5

比如说:

$foo = ($var) + 5;
我希望
$foo
的值为10

目前,我知道的最好的方法是分解
$var
,然后用
$var[0]
除以
$var[1]
。有没有更快的办法


另一种提问方式;有没有办法告诉系统将“10/2”视为一个等式而不是字符串?

可能是这样的解决方案

$foo = eval('return '.$var +5 .';');
print $foo;
eval需要一行代码。。因此,您可以构建一个有效的代码行

eval()
以就地分配或返回:

eval("\$foo = ($var) + 5;");

$foo = eval("return ($var) + 5;");

首先,EVAL是危险的,除非你知道自己在做什么,否则不要使用它!作为补充,你不知道自己在做什么。无论你作为一名程序员有多么丰富的经验,当涉及到评估时,只要假设你不知道自己在做什么。相信我,从长远来看,你的理智会感谢你的

至于你的问题,你基本上是在问如何编写一个方程解析器。编写一个能够处理所有有效输入情况(并可靠地识别无效输入)的完整版本比您最初想象的要大得多,因此,如果你真的需要解析字符串方程,那么最好找一个能为你解析的库,因为编写库的人可能会想到很多你没有想到的东西,比如处理和括号如何修改它,如何用科学符号传递字符串,等等

你的一条评论建议使用。我从未亲自使用过它,但我很了解作者的声誉,相信这是一个可靠的图书馆

如果您的用例总是像您的示例一样简单,那么您可以简单地拆分字符串并处理结果片段

$parts = explode ("/", $var);
$foo = $parts[0] / $parts[1];

不,因为变量的值只是一个字符串,所以如果你回显它,你只会得到字符串值。如果希望
$foo
成为
5
,则应使用
$foo=10/2
eval(\$foo=($var)+5;”@abracadverBrrrrrrrrrrr@AbraCadaver不Eval非常危险Eval非常危险!依赖eval()的代码几乎不可能调试,无法利用PHP提供的任何功能来加速代码执行(如op代码缓存),除了SQL注入之外,可能是所有高级语言中最大的安全故障源。建议人们深入使用它不会有什么好处。这有点戏剧性。不是真的,不。深入是对eval()的危险程度的完美描述。如果你吃错了蘑菇,吃“可能”是危险的。有些东西比其他的更危险。吃东西可能是危险的,但一般来说,吃东西比在悬挂在熊坑上方的高钢丝上玩活手榴弹更危险。EVAL是极其危险的!依赖eval()的代码几乎不可能调试,无法利用PHP提供的任何功能来加速代码执行(如op代码缓存),除了SQL注入之外,可能是所有高级语言中最大的安全故障源。建议人们使用它是没有好处的it@GordonM我同意你的看法,我的答案是技术性的。。。你的评论让我明白了这一点。。问题是这是否可能……虽然这在技术上是正确的,但我不能凭良心投票给一个鼓励不良行为而不警告风险的答案。@GordonM正确。。。你的警告似乎显而易见