`
happmaoo
  • 浏览: 4472697 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

深入理解PHP原理之错误抑制与内嵌HTML

阅读更多

PHP支持内嵌HTML的, 那么对于PHP文件中, PHP标签外的HTML会怎么处理呢? 它和直接输出HTML有什么区别么?

PHP提供了一个错误抑制符’@', 它是通过什么方式来阻止错误输出呢? 我又该在什么时候使用它呢?

这是这俩天一些网友提到的共同问题, 今天就索性整体回答下, 备后来人翻阅.

PHP文件内嵌HTML的处理方式

在PHP中, 所有在标签外的字符, 在词法分析过程中, 都会翻译成T_INLINE_HTML token, 在语法分析的时候, 所有的T_INLIE_HTML都会被分配ZEND_ECHO输出.

也就是说:

但有一个要注意的地方是, 对于PHP标签外的字符, 在词法分析过程中, 都会以400个字符为单位切分, 比如:

上面的代码中, 标签外有531个字符(包含空格回车), 会被分成俩条T_INLINE_HTML输出.

错误抑制符

我们知道,在PHP中,可以通过错误抑制符来静默错误提示, 那么它是通过什么方式呢?

在语法分析的过程中, 对于:

会分别在include语句前后插入俩条Opline(操作), 这俩个操作分别做:

  1. 1. 保存当前的error_reporting值, 并设置error_reporting(0); //关闭错误输出
  2. 2. 恢复之前保存的error_reporting值

也就是说, 其实上面的代码, 和下面的代码类似:

另外, 讲一句题外话:”什么时候才应用错误抑制呢?”, 我个人建议, 就是如果这条语句出错了对你影响不大, 你也不关心这个错误是什么, 你也不会安排额外的逻辑来处理这种错误, 那么你可以使用错误抑制. 否则, 请你使用额外的逻辑来判断错误.

原帖地址:http://www.laruence.com/2009/07/27/1020.html

分享到:
评论

相关推荐

    深入理解PHP原理之错误抑制与内嵌HTML分析

    在PHP编程中,深入理解错误抑制与内嵌HTML的处理方式是提高代码质量和优化性能的关键。本文将探讨这两个核心概念。 首先,让我们来看看PHP的错误抑制符'@'。这个符号用于防止错误信息的输出,它的工作原理是在语法...

    PHP (HTML 内嵌式的语言)

    PHP PHP,一个嵌套的缩写名称,是英文超级文本预处理语言...PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言

    微信小程序php后台内嵌mysql

    微信小程序php后台内嵌mysql微信小程序php后台内嵌mysql微信小程序php后台内嵌mysql微信小程序php后台内嵌mysql微信小程序php后台内嵌mysql微信小程序php后台内嵌mysql微信小程序php后台内嵌mysql微信小程序php后台...

    将html外部的样式内嵌的工具类.rar

    标题 "将html外部的样式内嵌的工具类.rar" 提供了一个关于Java代码实现的工具,该工具的主要功能是处理HTML文件,将...通过理解这个工具的工作原理和使用方法,开发者可以更好地管理和控制HTML内容的格式和展示效果。

    Spring技术内幕:深入解析Spring架构与设计原理

    《Spring技术内幕:深入解析Spring架构与设计原理》是一本由计文柯编著的书籍,专注于揭示Spring框架的核心机制和设计理念。这本书是为那些希望深入理解Spring如何工作,以及为何如此高效和灵活的开发者而准备的。...

    Unity内嵌浏览器.zip

    这些插件通常是基于原生平台的WebKit(iOS)或Chromium(Android)引擎,提供一个UIWebView或WebView对象,使得Unity能够与之交互。 二、UniWebView插件 "UniWebView"是Unity内嵌浏览器的常见解决方案之一,它是一...

    IOS下 内嵌 HTML编辑器 Objective-C与JavaScript数据交互

    本篇文章将深入探讨如何在iOS应用中内嵌HTML编辑器,并实现Objective-C与JavaScript的数据交互。 首先,我们要明白,iOS应用通常使用UIWebView来加载和显示HTML内容。UIWebView是苹果提供的一个视图组件,它可以...

    QWebEngineView之百度地图:内嵌本地HTML及js数据交互

    在本文中,我们将深入探讨如何使用Qt的QWebEngineView组件来内嵌本地HTML和JavaScript,以便与百度地图API进行数据交互。QWebEngineView是Qt WebEngine模块的一部分,它提供了一个用于显示网页内容的视图,支持现代...

    AT&T汇编语言与gcc内嵌汇编简介

    AT&T汇编语言与GCC内嵌汇编是计算机科学领域中重要的组成部分,它们在低级编程和系统级优化中扮演着关键角色。本文旨在深入探讨AT&T汇编语言的特性,以及如何在GCC中利用内嵌汇编技术来增强代码性能。 ### AT&T汇编...

    Java内嵌式Tomcat-TomcatDemo

    通过这个"TomcatDemo",学习者可以深入了解如何在Java应用中嵌入Tomcat服务器,以及如何配置、管理和运行Web应用。这有助于提升开发者在实际项目中的技能,特别是在分布式系统和微服务架构中的实践能力。

    Unity内嵌浏览器Embedded Browser 3.0.0

    通过深入理解以上知识点,并结合Embedded Browser 3.0.0提供的资源和文档,开发者可以有效地在Unity项目中集成和定制内嵌浏览器,实现丰富的交互功能。在学习过程中,建议参考官方文档,同时查阅社区中的教程和示例...

    AT&T汇编语言与GCC内嵌汇编简介

    ### AT&T汇编语言与GCC内嵌汇编简介 #### 1. AT&T与INTEL的汇编语言语法的区别 AT&T汇编语言与INTEL汇编语言在语法上存在一定的差异,这些差异主要体现在以下几个方面: ##### 1.1 大小写 - **INTEL格式**:指令...

    AT&T汇编语言与GCC内嵌汇编简介.pdf

    远程跳转指令和子过程调用指令的操作码使用前缀“l”,分别为`ljmp`、`lcall`,与之相应的返回指令伪`lret`。 - **示例**: - INTEL: `CALL FAR SECTION:OFFSET` - AT&T: `lcall $section:$offset` - INTEL: `...

    将图片以Base64代码的形式, 内嵌在html中(提供样例)

    将图片以Base64的编码,内嵌在html的代码中, 提供的是样例代码 即: 不是在html中指定图片的路径的形式 结合: http://download.csdn.net/detail/okpfsje123/5304296 这样就可以在发送的邮件中,直接看到图片(图片...

    STM32单片机FPGA毕设电路原理论文报告vc中内嵌汇编实现pc机与单片机的并行通信

    ### STM32单片机与FPGA在毕业设计中的应用:基于VC中内嵌汇编实现PC机与单片机的并行通信 #### STM32单片机概述 STM32系列微控制器是由意法半导体(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器...

    c# 内嵌式数据库 源代码

    1. **数据结构与算法**:内嵌式数据库的核心是数据的存储和检索,因此需要对数据结构(如B树、哈希表)和查询算法(如索引查找)有深入理解。 2. **C# 基础**:包括类、对象、接口、异常处理、文件I/O等,这些都是...

    x64下实现内嵌汇编

    内嵌汇编的基本原理是将汇编语言指令与高级语言代码混合编写,然后通过编译器将其转化为可执行的机器码。在x64环境下,这个过程需要遵循x64架构的规则和约定,包括寄存器使用、参数传递、堆栈管理和指令编码等。 ...

    window平台下内嵌HTML控件到窗口中

    在Windows平台上,将HTML控件内嵌到窗口中是一种常见的技术,这允许应用程序与Web页面交互,提供丰富的用户界面。这种技术主要依赖于Microsoft的ActiveX技术,它允许开发人员在本地应用程序中嵌入Web浏览器控件(也...

Global site tag (gtag.js) - Google Analytics