PHP常量使用的几个需要注意的地方
为什么要谨慎使用PHP中的常量?
Zend Framework文档中写道:常量包含数字字母字符和下划线,数字允许作为常量名。 常量名的所有字母必须大写。类常量必须通过 "const" 定义为类的成员,强烈不鼓励使用 "define" 定义的全局常量。
作为PHP的官方框架,为什么会有这样的要求?
让我们一起分析一下吧。
1. define容易产生意想不到的错误
PHP常量是定义后就不能修改和再次赋值。但是如果再次赋值会怎么样?
<?php define('C', 12345); define('C', 123); ?>
这段代码会报个notice错误。带来的后果是:在你定义之前,其它人要是定义了同名的常量,你可能真的不知道里面究竟是什么值。
2. 如何判断PHP常量是否被定义?判断方法易写错
<?php define('C', 12345); // 错误方法1,经常犯 if (isset(C)){……} // 错误方法2,经常犯 if (defined(C)){……} // 正确方法 if (defined('C')){……} ?>
3. 执行效率低
<?php define('FORUM_THEME',$forum['theme']); $this->display('/'.FORUM_THEME.'@Public:login'); // 系统会从整个执行流程中查找FORUM_THEME ?>
因为php处理常量的时候要进行多次查找,所以效率低。
总结:PHP常量的问题,在于PHP处理常量的方法过于宽松导致的,如果能够严格一些,就会避免很多的问题。在实际过程,能用变量就不要用常量,因为变量的效率高使用更加方便。
因此若非要使用常量或者类变量,可使用以下方法:
<?php class foo { const WEBSITE = "www.zhuyinghao.com"; protected $_forum_theme; function name() { echo WEBSITE; $this->_forum_theme = $forum['theme']; } function displace() { echo $this->_forum_theme; } } ?>
类名和函数名相同时的作用
在PHP 4中,类的构造函数需要和类名相同,子类的构造函数名与子类名相同,在子类里父类的构造函数不会自动执行。要在子类里执行父类的构造函数,必须执行类似以下语句:
$this->[父类的构造函数名()]
在 PHP 5.0 以上版本里,统一使用construct()作为构造函数,但仍兼容了 4.0 版本的构造函数的定义规则。如果同时定义了4.0的构造函数和 construct()函数,则construct() 函数优先。
用PHP EOL来替换/r/n进行换行
写程序时会经常用到换行,用PHP内置常量PHP_EOL来进行换行。
一个小小的换行,在不同的平台有着不同的实现。在unix世界换行就用\n来代替,但是windows为了体现他的不同,就用\r\n,更有意思的是在mac中用\r。因此unix系列用 \n,windows系列用 \r\n,mac用 \r。
因此系统会根据平台系统的不同,转换成不同的换行。如果要在浏览器中换行,就要使用PHP_EOL变量进行换行

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

常量也称为变量,一旦定义,其值在程序执行期间就不会改变。因此,我们可以将变量声明为引用固定值的常量。它也被称为文字。必须使用Const关键字来定义常量。语法C编程语言中使用的常量语法如下-consttypeVariableName;(or)consttype*VariableName;不同类型的常量在C编程语言中使用的不同类型的常量如下所示:整数常量-例如:1,0,34,4567浮点数常量-例如:0.0,156.89,23.456八进制和十六进制常量-例如:十六进制:0x2a,0xaa..八进制

常量和变量用于在编程中存储数据值。变量通常指的是可以随时间变化的值。而常量是一种变量类型,其值在程序执行期间不能被改变。在Python中只有六个内置常量可用,它们是False、True、None、NotImplemented、Ellipsis(...)和__debug__。除了这些常量之外,Python没有任何内置数据类型来存储常量值。示例下面演示了常量的示例-False=100输出SyntaxError:cannotassigntoFalseFalse是Python中的内置常量,用于存储布尔值

常量变量是其值固定且程序中只存在一个副本的变量。一旦你声明了一个常量变量并给它赋值,你就不能在整个程序中再次改变它的值。与其他语言不同,Java不直接支持常量。但是,你仍然可以通过声明一个变量为静态和final来创建一个常量。静态-一旦你声明了一个静态变量,它们将在编译时加载到内存中,即只有一个副本可用。Final-一旦你声明了一个final变量,就不能再修改它的值。因此,你可以通过将实例变量声明为静态和final来在Java中创建一个常量。示例 演示classData{&am

PHP是一种广泛应用于网页开发的服务器端脚本语言,它的灵活性和易用性使其成为许多开发人员的首选。然而,在使用PHP时,我们有时会遇到一些报错的情况。本篇文章将重点讨论"调用未定义的常量"错误,以及如何解决这个问题。一、问题描述当我们在代码中使用一个未定义的常量时,PHP会抛出一个致命错误,提示我们调用了一个未定义的常量。下面是一个常见的例子:echoMY_

PHP报错:使用未定义的常量作为属性名怎么办?在PHP开发中,我们经常会使用类和对象来组织和管理代码。在定义一个类的过程中,类的属性(即成员变量)起到了保存数据的重要作用。然而,当我们在使用属性时,有时会发生使用未定义的常量作为属性名的错误。本文将介绍这种错误的原因,并且提供几种解决方法。首先,让我们看一个简单的例子来演示这个问题。假设我们有一个名为"Per

学习基本数据类型常量的定义和初始化方法,需要具体代码示例在编程中,常常会用到各种基本数据类型,比如整型、浮点型、字符型等。在使用这些数据类型时,不仅需要了解它们的定义和用法,还需要知道如何定义和初始化它们的常量。本文将为大家介绍基本数据类型常量的定义和初始化方法,并给出具体的代码示例。整型常量的定义和初始化方法整型常量包括int、long、short和byt

PHP中的命名规范:如何使用下划线命名法命名常量和文件名在PHP编程中,良好的命名规范对于提高代码的可读性和可维护性非常重要。本文将介绍如何使用下划线命名法来命名常量和文件名,并通过代码示例来演示。常量的命名规范在PHP中,常量的命名通常全大写,并以下划线分隔单词。这种命名规范可以清晰地区分常量和变量,并且易于阅读和理解。以下是一些常见的常量命名示例:def

FILTER_SANITIZE_SPECIAL_CHARS常量过滤HTML转义特殊字符。标志FILTER_FLAG_STRIP_LOW−剥离ASCII值低于32的字符FILTER_FLAG_STRIP_HIGH−剥离ASCII值高于32的字符FILTER_FLAG_ENCODE_HIGH−编码ASCII值高于32的字符返回值FILTER_SANITIZE_SPECIAL_CHARS常量不做任何操作。示例 演示&
