前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP 使用 eval 函数实现字符串表达式计算

PHP 使用 eval 函数实现字符串表达式计算

原创
作者头像
Power
发布于 2025-04-03 08:18:55
发布于 2025-04-03 08:18:55
7400
代码可运行
举报
运行总次数:0
代码可运行

有时候我们需要在程序中内置一些公式,而这些公式是以字符串格式存在表中的,当我们用这个计算公式时,他并不像我们写的:$a=2+3*5;这样简单的能计算出结果,因为他是个字符串,所以,我们就必须把字符串转化为我们能够处理的结果,解决办法是使用 eval 函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$a = 10;
var_dump(eval('return $a > 5;'));

// 输出:
// bool(true)

但需注意的是,eval 函数可执行任意 PHP 代码,也就意味着权限大、风险高、不安全。这里仅限于我们程序中内置的一些公式。如果你的字符串表达式来自于外部输入,那务必不能使用此函数。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】2023年06月 Bugku-Web(eval)
在PHP中,$_REQUEST是一个关联数组,包含了HTTP请求参数(GET、POST和COOKIE)中的所有变量。虽然它为开发人员提供了方便,但如果不正确使用,也会引起安全问题,例如以下一些漏洞:
愚公搬代码
2025/05/28
1000
【愚公系列】2023年06月 Bugku-Web(eval)
字符串表达式计算(a+b/(a-b))的思路与实践
想要实现上面这个功能,需要先了解诸如 (a+1-(2+a)*3/3)/a+3 这个是什么?
易墨
2023/11/01
4140
字符串表达式计算(a+b/(a-b))的思路与实践
常用函数之字符串时间等
mysqli_real_escape_string() — 使用反斜线引用字符串 sql注入
老雷PHP全栈开发
2020/07/02
6830
关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】
最近徘徊在找工作和继续留任的纠结之中,在朋友的怂恿下去参加了一次面试,最后一道题目是: 写一个函数,输入一个字符串的运算式,返回计算之后的结果。例如这样的: ‘1 + (5 - 2) * 3’,计算出结果为10 最开始看到这个题目的时候,我脑中的第一反应就是eval,真的太直接了。但是我就不明白为什么这竟然是最后一道题目,我也不知道为什么还会考eval的运用,因此当时也很犹豫要不要用eval。因为eval有一系列的问题: eval会改变当前的作用域,除非函数直接调用,并且是eval本身执行 eval可
糊糊糊糊糊了
2018/05/09
1K0
关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】
PHP 函数篇(上):自定义函数和内置函数
函数是现代高级编程语言的基本配备,PHP 也不例外。一个典型的 PHP 函数通过 function 关键字进行声明,然后紧跟着是函数名和通过圆括号声明的参数列表,再通过花括号定义函数体 —— 我们可以在函数体中定义具体的业务逻辑,最后通过 return 语句返回函数返回值(可选)。
学院君
2020/06/02
1.4K0
PHP的一句话木马代码和函数eval的简介
大清早的刚从床上爬起来。雨落就跑来找我问我这段代码是什么意思<?php @eval($_POST[pp]);?>看了一下,post接收pp的值,抑制错误输出。呵呵开个玩笑,其实不是这么简单,这是一段P
沈唁
2018/06/13
2.4K0
面试题解法二:逆波兰表达式计算'1 + (5 - 2) * 3'
昨天发了一个面试题:关于一道面试题【字符串 ‘1 + (5 - 2) * 3’,怎么算出结果为10,’eval’除外】,受到了各位大大的指点,用一个比较简单的解法就能够计算出来,因此自己在下班后按照各位的指点又实现了一遍,这里贴出来供大家参考。 了解前缀、中缀、后缀表达式 关于概念这里简单贴一下,想了解更多的可以自行Google 前缀表达式:是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操作数写在后面。为纪念其发明者波兰数学家Jan Lukasiewicz,前缀表达式也称为“波兰式”
糊糊糊糊糊了
2018/05/09
2K0
面试题解法二:逆波兰表达式计算'1 + (5 - 2) * 3'
PHP的一句话木马代码和函数eval的简介
其实这段代码属于基础类的一句话,功能仅限于验证漏洞了,实际中太容易被查出来了,也就是早上雨落直接带图说检测到木马文件
沈唁
2018/06/01
3.5K0
PHP的一句话木马代码和函数eval的简介
Java: 对字符串计算公式实现加减乘除运算
最近看到一段面试编码视频:字符串计算加减乘除,发现网上很多是【从左到右遍历,两两计算】,没有考虑优先级事项,一直手痒,周末在家倒弄一下。
Janesong
2024/08/24
6430
Python eval 函数 将字符串 转为 有效的表达式
eval() 函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果
Devops海洋的渔夫
2019/06/02
2K0
PHP数据结构-栈和队列的应用
通过栈和队列的学习,我们似乎会感觉到其实数据结构还是非常简单的嘛。当然,这只是一个开始,我们从顺序表、链表开始,到现在的栈和队列,其实都是为了将来在铺路。在树和图的遍历算法中,都可以见到栈和队列的身影。在这里,我们先简单的看看栈和队列的一些实际应用。
硬核项目经理
2021/05/11
3690
PHP数据结构-栈和队列的应用
小案例-01-字符串转计算公式
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 Python:3.6.0
zishendianxia
2021/03/22
7780
小案例-01-字符串转计算公式
分享一些 PHP 中有用的知识和坑
在一次偶然查看 PHP 文档的时候,发现了一些有趣的内容,随着阅读的增加,越发觉得有趣的内容或者说时坑越来越多,所以我决定记录下来,分享出去,下文中一些内容摘录自一些优秀的博客、PHP 文档的用户笔记,或者文档原文。
IT大咖说
2021/07/19
1.4K0
PHP常见字符串面试题总结
由于此类问文章首发地址为该微信公众号,后期会不断更新,微信公众号不便于更新,可以点击左下角的阅读原文按钮,即可查看最新版本。
兔云小新LM
2019/07/22
1.8K0
PHP反序列化
```php foo=”data”; echo ‘foo’; //单引号会输出foo echo “foo”; //双引号会转义,输出data
h3110_w0r1d
2024/02/19
2680
PHP反序列化
字符函数和字符串函数
这些字符分类函数都是类似的,返回值都是int,假如我们用islower,如果参数是小写字母,则返回非0的随机数,如果不是则返回0.
E绵绵
2024/04/08
1240
字符函数和字符串函数
c#动态执行字符串脚本(优化版)
像javascript中有eval()来执行动态代码,c#中是没有的,于是自己动手丰衣足食,
冰封一夏
2023/03/30
8500
Python 字符串格式化,你了解多少?
面对 Python 灵活的字符串处理,作为一个 Javaer,往往有时候会不知道所措,看到这样的代码
shengjk1
2025/05/16
1940
PHP语言表达式库ExpressionLanguage
symfony/expression-language 是 Symfony 框架中的一个组件,它允许你解析和执行表达式。这个组件非常有用,特别是当你需要动态地计算或评估某些条件或表达式时。
Tinywan
2024/02/21
5700
PHP语言表达式库ExpressionLanguage
PHP正则表达式
1.最左原则:正则表达式总是从目标字符串的最左侧开始,依次匹配,直到匹配到符合表达式要求的部分,或直到匹配目标字符串的结束。 2.最长原则:对于匹配到的目标字符串,正则表达式总是会匹配到符合正则表达式要求的最长的部分;即贪婪模式
黄啊码
2020/05/29
4.8K0
相关推荐
【愚公系列】2023年06月 Bugku-Web(eval)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验