PHP 中的“贪婪标记解析”是什么?

2023-12-25

PHP 中的“贪婪标记解析”是什么? 我在 Codeigniter 指南中找到了这一点:

“除非需要解析变量,否则始终使用单引号字符串,并且在确实需要解析变量的情况下,请使用大括号来防止贪婪标记解析."

“我的字符串{$foo}”

带有良好解释的答案会有所帮助。


贪婪标记解析是指这样的事情:

$fruit = "apple";
$amount = 3;
$string = "I have $amount $fruits";

可能的预期输出:“我有 3 个苹果”
实际输出:“我有3个”

当然,这是初学者的错误,但即使是专家有时也会犯错误!

就我个人而言,我根本不喜欢插入变量,无论是否带大括号。我发现我的代码更具可读性,如下所示:

$string = "I have ".$amount." ".$fruit."s";

请注意,代码编辑器可以更轻松地对这一行进行颜色编码,如 Notepad++ 中所示:

不过,有些人可能更喜欢让引擎进行插值:

$string = sprintf("I have %d %ss",$amount,$fruit);

这完全取决于个人喜好,但您引用的指南中提出的观点是要小心您所写的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 中的“贪婪标记解析”是什么? 的相关文章

  • Laravel Eloquent with()-> 返回 null

    我正在尝试使用 Eloquent 来获取具有以下功能的特定产品 brand id映射到a的列brands表 该brand数组返回空 这里有什么明显需要改变的地方吗 product Product with images gt with br
  • 带缓存的简约 PHP 模板引擎,但不带 Smarty?

    有大量的问题 https stackoverflow com search q php template engine cache寻找 正确的 PHP 模板引擎 但它们都不专注于缓存 有谁知道一个轻量级 高质量 基于 PHP 5 的模板引擎
  • 性能方面插值(直接插入字符串)VS串联[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将十进制转换为二进制并将其位值恢复到数组中?

    例如 result func 14 The result应该 array 1 1 1 0 如何实施func decbin http docs php net decbin会产生一个字符串二进制字符串 echo decbin 14 outpu
  • 学说 - 获取下一个和上一个记录

    这样我就已经获取了一些记录 我已创建日期字段 现在我想按日期获取下一条和上一条记录 通过以下方式让它工作 qb this gt createQueryBuilder a next qb gt expr gt gt a created dat
  • jQuery 不断 ping 以获得 Ajax 响应

    如何使用 jQuery 不断运行 PHP 脚本并每秒获取响应 并将鼠标上的少量数据发送到同一脚本 我真的需要添加一些随机扩展才能让这样一个简单的计时器工作吗 迭代是人类的 递归是神圣的 L 彼得 多伊奇 http www devtopics
  • 如何使用多个分隔符拆分列表?

    基本上 我想在文本区域中输入文本 然后使用它们 例如 variable1 variable2 variable3 variable1 variable2 variable3 variable1 variable2 variable3 我知道
  • 如何在代码输出中显示 PHP 错误?

    当通过浏览器执行PHP页面时 我们只会得到输出 但不会得到代码中的错误 如何查看后端代码发生的错误 我在代码中使用以下内容进行错误报告 error reporting E ALL E ALL ini set display errors 1
  • Ajax 调用 contentType: 'application/json' 不起作用

    我有一个 ajax 调用 它将表单数据发送到 php 函数 因为我读了很多使用contentType application json 这是最佳实践 我也想尝试一下 但不幸的是 我的脚本在使用时没有返回任何内容 如果我删除它 脚本就会执行它
  • file_get_contents 获取 php 内容!我需要 html 中的源代码

    我正在尝试使用 file get contents 获取 php 文件的 html 内容 但我无法管理它 无论我做什么 它都需要 php 内容 所以我希望您理解并可以帮助我 脚本的代码
  • 使用 PHPUnit 模拟对象是否有可能期望调用神奇的 __call() 方法?

    我在测试中有一个模拟对象 真实的对象 PageRepository 使用 call 实现了一个神奇的方法 因此如果您调用 pageRepository gt findOneByXXXX value of field XXXX 它将在数据库中
  • PHP GoDaddy 最大执行时间不起作用

    默认 maximun execution time 为 120 秒 我已按照所有说明创建 php ini 文件并将其放置在正确的位置 public html 中 我运行 phpinfo 发现 maximun execution time 已
  • PHP 中的致命错误是什么意思?

    我收到以下错误 致命错误 未捕获错误 调用未定义的函数 var dumb 这是什么意思 致命错误是什么意思 这是一个导致脚本中止并立即退出的错误 致命错误之后的所有语句都不会被执行
  • PHP 下载页面

    这些 PHP 下载页面 例如 somesite com download php id somefile 通常如何工作 我最初想到了一个执行计数器操作的页面 然后简单地将用户重定向到文件 URL 这似乎是其他地方给出的唯一答案 但是我不知道
  • 如何在使用 echo 时将字符串与函数调用连接起来?

    我想在我的 echo ed html 字符串中使用两个函数调用返回的值 li a href the permalink the title a li 以下工作正常 echo li a href echo the title echo a l
  • 无法使用symfony2连接数据库oracle

    我需要的 我需要将oracle数据库与symfony2连接 我已经通过 php m 检查过 oci8 pdo odbc odbc 这是我关注的链接https gist github com johnkary 6481664 https gi
  • Razorpay 支付集成 -> 我如何检测关闭按钮 X 附近的 razorpay 模型

    我在 CI 框架中使用 Razorpay 当用户在没有付款的情况下关闭时 创建 razor 支付模型 然后对于取消订单 我希望通过状态更改为已取消来触发查询 那么我怎样才能检测到这一点 我已经在使用 by click jQuery 点击关闭
  • Preg_split 用逗号,忽略括号,PHP

    我必须分割一个字符串 并且我想避免用括号内的逗号分割它 那么我该如何实现呢 Example string string1 sString1 sString2 ssString1 ssString2 string2 string3 resul
  • CodeIgniter MultiDatabse 连接错误

    我在CodeIgniter中看到很多连接多数据库的方法 教程 离我还很遥远 有人提供我在 CI 中连接多个数据库 这是我在博客中找到的使用方式 抱歉 我不认识博客地址 active group default active record T
  • PHP字符串比较和相似度索引

    在 PHP 中 有什么优雅的代码可以在两个字符串中查找公共字母而不包含空格 还返回相似性索引 即计算常见字符的数量并返回占字符总数的百分比 假设我有一个字符串 LEGENDARY 而其他字符串为 BARNEY STINSON 所以我需要找到

随机推荐

  • 使用“class”属性绑定控件

    我想处理文本控件 sap m 中值的颜色 如果值为 TRUE 颜色为绿色 否则 如果值为 FALSE
  • CruiseControl.NET 和 TortoiseSVN

    Can the 源代码控制CruiseControl NET 目标 TortoiseSVN 中的块 CCNet 设计用于使用 svn exe 形式的 subversion 客户端 而不是直接使用 tortoisesvn tortoisesv
  • NodeJS、socketIO、多个文件

    我有点困惑 我想在 NodeJS 应用程序上使用 socketIO 我创建了这个 伪 代码 server js var app express some code var router require app router app use
  • HTML 输出自动缩进? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想自动缩进 PHP 脚本输出的 HTML 我确实使用 HTML Purifier 进行内部文本框输入表单验证 并考虑过 HTMLTidy
  • Azure 如何启用完整的 WebJob 日志

    当我在 Windows Azure 中将控制台应用程序作为 WebJob 运行时 在几行日志之后它会添加一条警告 05 06 2014 09 42 40 gt 21026c WARN Reached maximum allowed outp
  • 使用默认的其他模板参数推导第一个模板参数

    Gcc 和 clang 似乎在这段代码是否应该编译的问题上存在分歧 include
  • Log4J动态创建日志文件

    我已在每个进程运行时成功创建了日志 我现在遇到的问题是 任何被调用的不是当前正在运行的进程的子进程的包都不会将其日志写入我的文件 例如 我创建一个名为 running log 的新日志文件 正在运行的进程是 com me foo 该类内部调
  • 如何从数据库中按类别显示数据?

    因此 我的网站允许用户创建联系人列表 现在我添加了用户命名的类别 我当前正在使用从 SQL 查询生成的关联数组的 while 循环来显示联系人列表 所以它看起来像这样 Contacts Contact 1 Contact 2 Contact
  • 错误:此类与关键项目ToolBar 的键值编码不兼容? [复制]

    这个问题在这里已经有答案了 嘿 我无法弄清楚我遇到的错误 我的应用程序正在运行 然后我不确定我做了什么 但它现在无法打开 而是收到此错误 Terminating app due to uncaught exception NSUnknown
  • 无法在 Docker-Driver Windows 10 上访问 Minikube(v1.18.1) Ingress

    我的问题与this https stackoverflow com questions 66275458 could not access kubernetes ingress in browser on windows home with
  • 使用 PHP(或其他语言)流式传输数据(例如音乐)

    多年来 我一直在研究如何从我的计算机创建音乐流 我见过一些程序 但我见过的任何有用的东西都仅限于 Windows 我使用 Mac 最终 我产生了兴趣how流工作 有什么办法可以创建我的own流 可能使用套接字函数PHP 有没有PHP图书馆为
  • 如何在nhibernate中使用PK删除对象?

    如何删除对象而不先从数据库中获取它 在另一个 ORM 中 我可以这样做 session Delete
  • mojolicious 引用的存储变量并不总是定义的

    我仍在学习 mojolicious 和 MVC 框架 所以这可能是一个问题 我认为这个问题是错误的 所以如果我愿意 请建议一种更好的方法来执行以下操作 我有一条路线 route param 其中 param 有时被定义 有时则没有 我尝试在
  • 为什么“--force-recreate”不重建我的 docker mysql 映像?

    我创建了一个 docker MySql 5 7 映像 然后想更改几个名称 我的 docker compose yml 文件最终像这样 version 3 3 services db image mysql 5 7 restart alway
  • 未找到 osx sys/io.h

    我想在 os x 下使用 cc 编译为 linux 开发的 c 程序 它包括标头 sys io h 编译的时候报错说找不到这个文件 os x下不是有sys io h头文件吗 任何帮助将非常感激 Thanks Include
  • 更改flutter应用程序图标的背景颜色

    我想将背景图标更改为 fe6017 I use flutter launcher icons set adaptive icon background fe6017 但这不起作用 我也尝试调整图像大小 但它总是收缩并放置white我的图像周
  • 如何使用JW Player播放rtmp流?

    我想知道如何使用 JW Player 流式传输 RTMP 我刚刚开始 嵌入没有帮助 因此如果有人可以分享适合他的代码 将会有所帮助 我们这里有一个指南 http www longtailvideo com support jw player
  • jqgrid 获取所有网格列名称

    有没有办法获取网格的所有列名称 您可以使用以下方式获取列名称 var columnNames list 0 p colNames or var columnNames list jqGrid getGridParam colNames 唯一
  • 给定日期范围内的每日活跃用户数

    我需要根据开始日期和结束日期查找每日活跃用户总数 报名表 id registration no start date end date 1 1000 2014 12 01 2014 12 03 2 1001 2014 12 01 2014
  • PHP 中的“贪婪标记解析”是什么?

    PHP 中的 贪婪标记解析 是什么 我在 Codeigniter 指南中找到了这一点 除非需要解析变量 否则始终使用单引号字符串 并且在确实需要解析变量的情况下 请使用大括号来防止贪婪标记解析 我的字符串 foo 带有良好解释的答案会有所帮