PHP 中的连接 ECHO 语法

2023-11-24

我做了一个小功能(WordPress), 使用echo .

/* .. Some code */
switch ($linktype) {
    case "next":
        echo '<p class="next">' . previous_post_link('%link',''.$prevthumbnail.'') . '</p>';
        break;
    case "prev":
        echo '<p class="prev">' . next_post_link('%link',''.$nextthumbnail.'') . '</p>';
        break;
}
/* .. Some other code*/

使用我知道的“常规”串联语法......

echo '<p class="next">'. previous_post_link('%link',''.$prevthumbnail.'') . '</p>';

...产生...

<p class="next"></p>< result of previous_post_link() >

我显然需要<p class="next">< result of previous_post_link() ></p>。我发现一些帖子建议替换点('.')带逗号(','),所以现在我有...

echo '<p class="next">' , previous_post_link('%link',''.$prevthumbnail.'') , '</p>';

...这有效。这是解决问题的“正确”方法,还是只是有效的“黑客”方法?有更好的方法吗?


逗号更快。

The echo构造允许多个“参数”。当你echo使用逗号,输出将直接逐段发送到缓冲区。当你使用.,它必须首先连接。

对于大多数应用程序来说,这不会对速度产生巨大影响,但我通常养成使用逗号的习惯echo anyway.

如果您好奇的话,这是一个基准:http://www.electrictoolbox.com/php-echo-commas-vs-concatenation/


EDIT:现在,这就是事情“失序”的原因。 (向所有人道歉,因为我现在才发现这一直是根本问题。)当你echo with .,你先连接之前echo开始做它的工作。为此,需要首先评估每个表达式。考虑一下:

echo (5+5) . (10+10);

PHP首先会评估(5+5)进而(10+10)。这相当于把它变成这样:

echo 10 . 20;

然后这些需要连接起来,所以它们被转换为字符串并变成这样:

echo "1020";

那有意义吗?现在考虑函数previous_post_link()。 @Tim 说得很对,这个函数没有返回值。当该函数被评估时,它不返回任何内容并回显一些内容。所以如果我们这样做:

echo "test" . previous_post_link();

首先,对这两件事进行评估。"test"已经是一个字符串,但我们需要运行该函数previous_post_link()首先获取其连接的返回值。跑的时候,previous_post_link()输出一些东西,但不返回任何东西。"test"然后与任何内容连接,并且该连接通过输出echo.

现在,假设我们使用逗号代替:

echo "test", previous_post_link();

PHP 评估所有“参数”echo按顺序构建并输出。第一的,"test"是输出,然后previous_post_link()被评估,它有自己的输出,并且不返回任何内容,因此没有任何输出。

我希望这更清楚。如果没有的话发帖。

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

PHP 中的连接 ECHO 语法 的相关文章

  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt
  • 如何将对象(模型类型对象)插入到 Laravel 中 Collection 对象的特定索引号处?

    我读过戴尔 里斯的代码明亮 https daylerees com codebright 了解更多关于雄辩的信息Collection在 Laravel 中使用 还做了一些其他研究 但找不到我正在寻找的答案 我想插入一个对象 Model输入对
  • Facebook 扩展权限

    更新2 好的 通过更改使其 有点 工作 loginUrl facebook gt getLoginUrl array canvas gt 1 fbconnect gt 0 req perms gt publish stream next g
  • 如何改进 PHP 分页算法?

    我正在研究 PHP 中的分页算法 我可以猜测它需要改进的空间 所以我想对如何改进它有一些想法 无论是从 UI UX 的角度清理代码本身 还是你能想到的任何其他东西 该算法应输出如下所示的分页 1 2 3 6 7 8 97 98 99 or
  • PHP 函数 iconv 字符编码从 iso-8859-1 到 utf-8

    我正在尝试将字符串从 iso 8859 1 转换为 utf 8 但是当我找到这两个字符 和 时 函数返回 一个字符 是一个里面有两个数字的正方形 我该如何解决这个问题 我认为您正在寻找的编码是Windows 代码页 1252 http en
  • Laravel 5 配置语言环境,不起作用

    已完成的修改 on 配置 应用程序 php locale gt env APP LOCALE en fallback locale gt en on env APP LOCALE pt 我也复制了 资源 lang en文件到 资源 lang
  • 使用 CodeIgniter 加载视图文件夹外的视图

    我需要从以下范围之外加载视图 this gt load gt view 这似乎是从base application views目录 如何从外部访问视图 application 目录 我想我将不得不延长CI Loader class这是最好的
  • 如何接收发送到 twilio 号码的短信

    我在 twilio 创建了一个免费帐户 用于通过我的网站发送短信 注册后 我得到了一个 twilio 号码 例如 XXX XXX XXXX 我可以向手机号码发送消息 但我不知道如何使用这个 twilio 号码接收短信 请帮我解决这个问题 T
  • php/symfony/doctrine 内存泄漏?

    我在使用 symfony 1 4 和原则 1 2 将对象批量插入数据库时 遇到问题 我的模型有一种称为 Sector 的对象 每个对象都有多个 Cupo 类型的对象 通常范围从 50 到 200000 这些物体非常小 只是一个短标识符字符串
  • 如何使用 Google Calendar API 和官方 PHP 库创建全天活动?

    我有这个代码 event new Event event gt setSummary event summary event gt setLocation event location start new EventDateTime sta
  • Google Closure 编译器和 multipart/form-data 不起作用

    我正在向 google 闭包编译器 API 服务发出请求 content file get contents file js url http closure compiler appspot com compile post true p
  • 从 PHP 启动守护进程

    对于网站 我需要能够启动和停止守护进程 我目前正在做的是 exec sudo etc init d daemonToStart start 守护进程已启动 但 Apache PHP 挂起 做一个ps aux透露sudo它本身变成了僵尸进程
  • zend框架验证模型中的数据而不是表单中的数据

    使用 Zend Framework 2 在我的应用程序中 要编辑数据库中的数据 可以编译 html 表单或发送 http post 请求 我的服务器作为 Web 服务实现 在第二种情况下 不会呈现表单 问题 如果当服务器收到不是从表单发送而
  • php - 重定向ajax请求[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 php wordpress 中重定向 ajax 请求 I tried header Location http redirect
  • 如何检测iPhone是否有视网膜显示屏?

    如何检测 iPhone 是否配备视网膜显示屏 有靠谱的办法吗 要么是纯 PHP 要么最好是 Zend Framework 方式来执行此操作 我通过这个弄清楚了 var retina window devicePixelRatio gt 1
  • 安全地评估简单的数学

    我想知道是否有一种安全的方法来评估数学 例如 2 2 10000 12000 10000 20 2 2 40 20 23 12 无需使用eval 因为输入可以来自任何用户 我需要实现的只是整数的加法和减法 是否有任何已经存在的代码片段 或者
  • MVC 框架中的缓存策略?

    我编写了自己的小型 PHP MVC 框架 现在正在探索 PHP MVC 框架中的缓存策略 我正在考虑可以缓存什么 在哪里以及如何缓存 我的框架是简单的MVC框架 我有前端控制器 它启动应用程序 注册类自动加载 设置 php 运行时指令 最后
  • 如何在没有 SSH 和 CLI 访问生产的情况下部署 symfony 项目 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 大多数托管提供商仅具有 FTP 访问权限 是否可以 常见地进行 symfony 项目 3 x 或 4 x 的本地安装 然后通过 FTP 上
  • Nginx 安全链接模块不适用于 php 文件,但适用于静态文件

    我在用http nginx org en docs http ngx http secure link module html http nginx org en docs http ngx http secure link module
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male

随机推荐

  • Android 上的 PhoneGap:从远程服务器加载 Web 应用程序

    当我将所有 Web 文件 html JS CSS 复制到项目的 www 文件夹并使用这些文件编译应用程序时 我的 Android PhoneGap 应用程序完全按预期工作 但是 当我不复制它们并重定向到包含这些文件的 Web 服务器时 即在
  • html/body 上的高度 100% 在 iPhone 上不起作用

    我使用 Foundation 创建了一个响应式网站 其页脚绝对位于页面底部 在我的桌面浏览器上 它看起来一模一样 但在我的 iPhone 上 页脚与部分内容重叠 而不是一直位于页面底部 我的 html body CSS 设置为 html b
  • Mapbox 空白地图 React-map-gl | Mapbox 空白地图ReactJS

    我正在使用react 17 0 1和react map gl 6 0 2我有一个地图组件 我尝试过其他库 问题仍然存在 我已经联系了 Mapbox 的支持人员 我已经联系了其他mapbox用户 无法解决这个问题 当我执行 npm run s
  • Perl简单比较== vs eq

    关于已接受的答案Perl 中的字符串比较 eq 与 它说First eq is for comparing strings is for comparing numbers 进行数字比较 它将两个参数转换为数字 然后比较它们 eq 进行字符
  • 使用 CSS 和 HTML 的垂直树

    我正在尝试用 HTML 和 CSS 绘制一个垂直的树状结构 我已经在某种程度上做到了 Fiddle div class tree ul li a href Parent a ul li a href Child a ul li a href
  • 什么是 java.io.IOException:无效的标头字段?

    当我尝试运行以下命令时 jar cvfm myjar jar manifest txt class 我收到以下异常 java io IOException invalid header field at java util jar Attr
  • 为什么在initComponent中使用Ext.apply

    很多代码示例都使用分机申请在设置组件的属性时初始化组件 method 例子 initComponent function Ext apply this items xtype button 我的问题是 与这样做相比 这样做有什么区别 ini
  • 如何让fopen正确超时?

    我有以下 php 代码片段 if fp fopen url r stream set timeout fp 1 stream set blocking fp 0 info stream get meta data fp 我希望请求在 1 秒
  • 将 R 列表(矩阵)的每个成员彼此相乘

    我在 R 中有一个大小相等的矩阵列表 我想将它们相互相乘 我正在寻找一种方法来做 list A list B list C 无需手动输入 我的列表有几十个矩阵 Use Reduce如果你想要逐个元素相乘 gt Lists lt list m
  • C 如何正确测量时间?

    这是 算法 但是当我想测量执行时间时 它给我零 为什么 define ARRAY SIZE 10000 clock t start end start clock for i 0 i lt ARRAY SIZE i non parallel
  • 托管 Windows 窗体设计器 - 在运行时序列化设计器并生成 C# 代码

    我正在创建一个设计器界面并将控件加载到运行时 我在将控件反序列化 加载到运行时时遇到问题 我尝试过的所有方法似乎都存在某种类型的问题 面临的问题例如 控件仍然受设计时的限制 并非所有属性都与所有属性 即嵌套属性 反序列化 控件关联似乎确实得
  • CSS 中的 div 布局就像 HTML 表格中的表格单元格

    今天我又一次偶然发现了 css 布局时经常遇到的一个问题 我想在水平行中有 5 个 div 举例来说 它们的宽度应该是 1 60 像素 2 30 3 40 像素 4 5 100 像素 其中 代表 填满剩余空间 过去 这就是我们布局宽度表的方
  • 获取所选文本的父元素

    是否可以获取页面中所选文本的父元素 例如 div class someparent Selection of this text should refer to the someparent class span class spanpar
  • 是否可以在 Xcode 4.3 中使用 NSArray、NSDictionary 和 NSNumber “文字”? (LLVM 4.0)

    显然 新的 Objective C 文字已经进入了铿锵的树干 从而揭开了保密协议的神秘面纱 我的问题 我怎么能够 以上帝的名义 在 Xcode v4 3 中使用这些构造 见下文 如果没有 并且我一直在等待 XCode 4 4 OSX 10
  • 如何从两个已排序数组中的对中获取 K 个最小的乘积?

    给出了两个排序数组 我们必须从这些数组的对中找到 K 个最小的乘积 我能想到一个 mnlogk 解决方案 但即使数组未按排序顺序 此解决方案也有效 我们可以利用这个排序顺序并找到更好的解决方案吗 我尝试使用大小为 k 的最大堆来获取 mnl
  • TR的高度如何确定?

    是否可以固定表格上行 tr 的高度 当我缩小浏览器窗口时 问题就会出现 一些行开始播放 并且我无法修复行的高度 我尝试了几种方法 tr width 20 tr style height 20px td height 20 td style
  • Docker + Rspec + Capybara - 参数 [0] 未定义

    我试图让我的规格在 docker 中无头工作 它们在我的 mac 上本地运行良好 但是当我在 docker 容器内运行它们时 我收到此错误 重复多次 Selenium WebDriver Error JavascriptError argu
  • Laravel 4:对如何使用 App::make() 感到困惑

    我正在尝试遵循本文中概述的存储库模式http code tutsplus com tutorials the repository design pattern net 35804 highlighter 174798我正在尝试使用 App
  • 在 web.xml 中将 servlet 设置为默认主页[重复]

    这个问题在这里已经有答案了 我有一个 servlet 注册在web xml如下
  • PHP 中的连接 ECHO 语法

    我做了一个小功能 WordPress 使用echo Some code switch linktype case next echo p class next previous post link link prevthumbnail p