6

The serialization and especially unserialization is pretty awkward. (On the other hand it's not quite clear why a scripting language can't have arrays as constants...)

序列化,特別是反序列化非常尷尬。 (另一方面,為什么腳本語言不能將數組作為常量也不太清楚......)

But it really depends on the usage pattern. Normally you want global defines for storing configuration settings. And global variables and constant are an appropriate use for that (despite the "globals are evil!!1!" meme). But it's advisable to throw everything into some sort of registry object or array at least:

但這實際上取決於使用模式。通常,您需要全局定義來存儲配置設置。全局變量和常量是適當的用途(盡管“全局變量是邪惡的!1!”meme)。但建議至少將所有內容都放入某種注冊表對象或數組中:

class config {

var $MY_ARRAY = array("key1"=>...);

var $data_dir = "/tmp/";

}

This gives the simplest access syntax with config::$MY_ARRAY. That's not quite an constant, but you can easily fake it. Just use an ArrayObject or ArrayAccess and implement it in a way to make the attributes read-only. (Make offsetSet throw an error.)

這為config :: $ MY_ARRAY提供了最簡單的訪問語法。這不是一個常數,但你很容易偽造它。只需使用ArrayObject或ArrayAccess並以一種使屬性為只讀的方式實現它。 (使offsetSet拋出錯誤。)

If you want a global array constant workaround, then another alternative (I've stolen this idea from the define manual page) is to use a function in lieu of a constant:

如果你想要一個全局數組常量解決方法,那么另一個替代方法(我從定義手冊頁中竊取了這個想法)就是使用一個函數來代替常量:

function MY_ARRAY() {

return array("key1" => $value1,);

}

The access is again not quite constantish, but MY_ARRAY() is short enough. Though the nice array access with MY_ARRAY()["key1"] is not possible prior PHP 5.3; but again this could be faked with MY_ARRAY("key1") for example.

訪問再次不是很穩定,但MY_ARRAY()足夠短。盡管PHP 5.3之前不可能使用MY_ARRAY()[“key1”]進行良好的數組訪問;但同樣可以用MY_ARRAY(“key1”)偽造一下。

php中isdefin,在PHP中定義全局常量數組的最“優雅”方法是什么相关推荐

  1. mysql开启function,Mysql自定義函數(function)

    語法 自定義函數也需要相應的要求,語法如下: CREATE FUNCTION(參數列表) RETURNS返回值類型 函數體 刪除: DROPFUNCTION 調用自定義函數語法: SELECT (pa ...

  2. [SV]SystemVerilog中的基本邏輯與運算 --- (==與===的區別/posedge與negedge是怎麼定義的?)

    SystemVerilog中的基本邏輯與運算 --- ==與===的區別/posedge與negedge是怎麼定義的 一. ==與===的區別 1.1.先看下面的例子 module equal_tes ...

  3. 阿諾爾德的「常微分方程」中對「單參變換羣」的定義好像有問題

    見阿諾爾德的「常微分方程」第四頁,他對「單參變換羣」的定義如下: 可是這裏有一個問題,就是,如果$M$是實數集,那麼根據我的博文 M的冪集的勢不大於_M_的所有排列形成的集合的勢 ,可知 M 到它自身 ...

  4. iframe标签中写html,html页面中嵌套iframe标签,我们可以用html中的iframe标签搞定

    iframe嵌入网页的用法 iframe并不是很常用的,在标准的网页中非常少用.但是有朋友经常问到,下面我简单地介绍一下它的用法,你只要熟练掌握这些参数足矣. 也应该是框架的一种形式,它与不 ...

  5. ASP.NET Ajax 1.0 RC 'Sys' 未被定義 問題

    ASP.NET Ajax 1.0 RC 'Sys' 未被定義 問題 您在依照筆者的影片安裝ASP.NET Ajax 1.0 RC 之後,可能會在測試時發現有底下的錯誤訊息: 請在 Web.Config ...

  6. dataTable.NET的column index的不同定義

    dataTable.NET是一個jQuery的plug in 第三方的library, 用來實現web page中table的interaction controls, 另外最近有在用的還有Teler ...

  7. C# 配置文件 自定義結點

    1.  對於配置自定義結點,需要繼承ConfigurationSection類. UrlsSection : ConfigurationSection 2.  配置文件中,需要如下引用: View C ...

  8. android 仿ios timepicker,android:TimePicker仿照IOS時間選擇器,可自定義選擇器

    背景: 項目要求寫一個選擇器:不僅僅是單純的時間,還包括自定義部分. 搜了很久,搜出來只用一個自定義view.java類,再簡單封裝下的選擇器: 貼下源碼:public class PickerVie ...

  9. android jni 中jnienv,android JNI中JNIEnv類型和jobject類型的解釋

    JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv *env, jobject obj) { cout< } 對於 ...

最新文章

  1. Oracle insert大数据量经验之谈
  2. tf.log()详解
  3. IIS短文件/文件夹泄露漏洞
  4. 三十八、学Sql,不了解Sql注入怎么行?
  5. Data URI scheme 在 html 中嵌入小图片
  6. 51Nod 1092 回文字符串(LCS + dp)
  7. 家里蹲太孤单?用 Python 画一只单身狗 | 原力计划
  8. SDL_BlitSurface的参数是两个PNG时,如何保护其透明度
  9. Windows Phone开发(12):认识一下独具个性的磁贴 转:http://blog.csdn.net/tcjiaan/article/details/7313866...
  10. mysql查看enum和set值_mysql中的enum和set类型_MySQL
  11. 无线网络 EAP 认证
  12. Word文档中去除EndNote格式
  13. 前端新手HTML入门
  14. Docker搭建ElasticSearch
  15. prometheus的remote write功能
  16. 企业微信自建应用开发
  17. 2021-04-13
  18. python美元和人民币双向兑换程序_Python:程序练习题(二)
  19. QT在windows上检测USB端口插拔
  20. 搜索关键字高亮_SpringBoot+Mybatis-Plus+Elasticsearch 实现关键字搜索高亮展示

热门文章

  1. sql是否包含多个字符串_工作中遇到的99%SQL优化,这里都能给你解决方案
  2. 17.QT-事件处理分析、事件过滤器、拖放事件
  3. 为什么要学习python
  4. java 并发编程总结
  5. kindeditor图片上传 struts2实现
  6. Java 流程控制与数组
  7. 审计参数 audit_trail
  8. 在Linux下常用的命令
  9. java uuid 生成方法
  10. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册