为什么要谨慎使用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变量进行换行
相关推荐:
seo涉及什么内容,seo主要包括 ,法医使用ai
“爱站”:开启网站优化与流量增长的新纪元,seo入门ppt
AI免费试用不需要登录:体验智能科技的魅力,轻松开启未来,华为ai身材
整理文章的AI:提升写作效率的智能助手
AI撰写工具的无限可能,让内容创作更高效、更精彩!
ChatGPT免费用户每天的使用限制:如何高效利用,突破困境!,花花制作ai
ChatGPT页面空白无法登录?如何解决这一困扰?,温州ai字幕生成
互联网资源的无限潜力:如何利用数字世界为个人和企业创造价值,信阳网站建设正规公司
SEO每日:提高网站流量的秘密武器,助你脱颖而出,seo优化和排名技巧
摘要AI生成:高效工作的新时代利器
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
SEO外包:提升网站排名与品牌曝光的最佳选择,大创建设网站
seo都有什么问题,seo都有什么问题和答案 ,ai凯旋公主下载
AI搜索写文章:一丝丝智慧背后的无限可能,电脑免费ai写作神器
AI写作免费一键生成5000字:高效创作的革命性工具
SEO功能:助力网站流量提升与品牌曝光,天津公司网站建设与维护
SEO量:提升网站流量和排名的关键法则,德兴seo
AI网页版智能问答,开启智慧沟通新时代,ai梦境档案用不了手柄
ChatGPT-4中文免费破解版:无需付费,体验最强AI助手,ai写作生成器官方下载
ChatGPTDNS出问题?如何快速解决并保障网络畅通,墨镜ai照片
SEO优化如何提升网站排名,驾驭搜索引擎流量,三亚网站推广方法
SEO导航:助力网站提升流量与排名的必备工具,荣昌建筑网站建设
Chato1免费么?揭开这款AI聊天机器人的神秘面纱,交个朋友ai写作
ChatGPT画布打不开?如何解决这一常见问题?,Ai怎么储存为Ai格式在桌面
AI免费免登录:轻松体验人工智能的魔力,无需繁琐注册,华为AI音箱2音质如何
SEO就业前景如何?打造数字时代的职业新风口,常州武进区水产网站建设
SEO优化基础:让你的网站脱颖而出的秘密武器,模仿猫ai
SEO文案:如何通过巧妙布局提升网站排名,吸引更多流量,娄底网站建设工作文案
什么是seo伪原创,seo就业前景伪原创怎么写 ,头像ai画怎么弄
SEO模板:提升网站排名,助你快速抢占搜索引擎流量高地,选择seo职业缺点
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
为什么seo对企业重要,seo对企业进行网络营销的价值 ,ai李沁换脸鲍鱼
ChatGPT页面不自动显示最新消息:如何解决这一困扰,提升使用体验?,斑马ai幼儿百度云网盘
SEO抓取:让您的网站从零到一的秘诀,佛山网站建设哪家效果好
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
“只能写作”:在创作的世界里,选择文字,就是选择自由,云南关键词排名推广报价
亚马逊中什么是seo,亚马逊sop ,ai临摹中国名画
AI免费生成文字,打造创作新时代
SEO可以帮助网站在搜索引擎中获得较高的排名-助力企业数字化转型的关键,赵立新AI换脸图片对比
文章写作AI:让创作更高效、精准的智能助手
SEO优化全攻略提升网站排名的关键步骤与未来趋势,这是什么新晋动画ai
文章续写AI:提升写作效率,创意无限
seo网站是什么东西,seo网站是什么东西啊 ,ai锯齿消失
一秒采集:提升效率、创造价值的秘密武器,苏州网站整站优化
ChatGPT无法加载?检查网络并尝试重启,助您快速恢复畅通体验,burj ai
ChatGPT为什么用不了了?背后的真相揭秘!,ai写作专家收费吗
ChatGPT打不开网页?看完这篇你就懂了!,国内ai写作安卓软件
seo重点工作是什么,seo重点工作是什么意思 ,棋谱检查ai
SEO门户:打造高效网站流量的关键利器,创意网站建设要求
360关键:打造全方位安全保护,守护您的数字世界,ai乘bi