本篇文章主要介绍PHP中的常量,感兴趣的朋友参考下,希望对大家有所帮助。
常量是一个简单值的标识符(名字)。常量的范围是全局的。常量默认为大小写敏感。传统上常量标识符总是大写的
常量名遵循PHP 标签命名规则,字母或下划线开始,后面跟着字母,数字或下划线。正则表达式为:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
字母指的是 a-z,A-Z,以及从 127 到 255(0x7f-0xff)的 ASCII 字符。
Example #1 合法与非法的常量名 <?php // 合法的常量名define("FOO", "something");define("FOO2", "something else");define("FOO_BAR", "something more");// 非法的常量名 define("2FOO", "something"); // 下面的定义是合法的,但应该避免这样做:(自定义常量不要以__开头) // 也许将来有一天PHP会定义一个__FOO__的魔术常量 // 这样就会与你的代码相冲突define("__FOO__", "something"); ?>
语法
定义常量:
用 define() 函数定义常量。用 defined() 函数检查是否定义了某常量。 用 const 关键字在类定义之外定义常量(PHP 5.3.0)。
使用 const 关键字定义常量必须处于最顶端的作用区域,因为用此方法是在编译时定义的。这就意味着不能在函数内,循环内以及 if 语句之内用 const 来定义常量。
常量只能包含标量数据(boolean,integer,float 和 string)。可以定义 resource 常量, 但会造成不可预料的结果。 动态常量名,用函数 constant() 获取常量值。用 get_defined_constants() 可以获得所有 已定义的常量列表。
常量和变量有如下不同:
常量前面没有美元符号($); 常量只能用 define() 函数定义,而不能通过赋值语句; 常量可以不用理会变量的作用域而在任何地方定义和访问; 常量一旦定义就不能被重新定义或者取消定义; 常量的值只能是标量。 *常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
Example #1 定义常量 <?php define("CONSTANT", "Hello world.");echo CONSTANT; // outputs "Hello world."echo Constant; // 输出 "Constant" 并发出一个提示级别错误信息 ?>
Example #2 使用关键字 const 定义常量 <?php // 以下代码在 PHP 5.3.0 后可以正常工作const CONSTANT = 'Hello World'; echo CONSTANT; ?>
魔术常量
8个 PHP 的“魔术常量”,随着它们在代码中的位置改变而改变。
__LINE__ 文件中的当前行号。 __FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对 路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。 __DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目 录中名不包括末尾的斜杠。(PHP 5.3.0中新增) __CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字 (区分大小写)。在 PHP 4 中该值总是小写字母的。 类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是 调用 trait 方法的类的名字。 __METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。 __NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的 (PHP 5.3.0 新增)。
/* __FUNCTION__ and __METHOD__ as in PHP 5.0.4 is that __FUNCTION__ returns only the name of the function while as __METHOD__ returns the name of the class alongwith the name of the function */<?php class trick{ function doit() { echo __FUNCTION__; } function doitagain() { echo __METHOD__; } }$obj=new trick();$obj->doit(); // output will be ---- doit$obj->doitagain(); // output will be ----- trick::doitagain
相关推荐:
以上是【php手册】常量的详细内容。更多信息请关注PHP中文网其他相关文章!

使用数据库存储会话的主要优势包括持久性、可扩展性和安全性。1.持久性:即使服务器重启,会话数据也能保持不变。2.可扩展性:适用于分布式系统,确保会话数据在多服务器间同步。3.安全性:数据库提供加密存储,保护敏感信息。

在PHP中实现自定义会话处理可以通过实现SessionHandlerInterface接口来完成。具体步骤包括:1)创建实现SessionHandlerInterface的类,如CustomSessionHandler;2)重写接口中的方法(如open,close,read,write,destroy,gc)来定义会话数据的生命周期和存储方式;3)在PHP脚本中注册自定义会话处理器并启动会话。这样可以将数据存储在MySQL、Redis等介质中,提升性能、安全性和可扩展性。

SessionID是网络应用程序中用来跟踪用户会话状态的机制。1.它是一个随机生成的字符串,用于在用户与服务器之间的多次交互中保持用户的身份信息。2.服务器生成并通过cookie或URL参数发送给客户端,帮助在用户的多次请求中识别和关联这些请求。3.生成通常使用随机算法保证唯一性和不可预测性。4.在实际开发中,可以使用内存数据库如Redis来存储session数据,提升性能和安全性。

在无状态环境如API中管理会话可以通过使用JWT或cookies来实现。1.JWT适合无状态和可扩展性,但大数据时体积大。2.Cookies更传统且易实现,但需谨慎配置以确保安全性。

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

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

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

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

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