>백엔드 개발 >PHP 튜토리얼 >PHP中一些奇怪的写法!这是为什么?

PHP中一些奇怪的写法!这是为什么?

WBOY
WBOY원래의
2016-06-06 20:13:191223검색

PHP中一些奇怪的写法!这是为什么?

如图所示
为什么要再给Areturn这个类再次定义一个json属性呢? 这个属性就是"json"这个字符串,为什么不直接引用呢?

在我见过的别人封装的类中,此种例子比比皆是,为什么呢?
再例如这个
PHP中一些奇怪的写法!这是为什么?

这个
这个给我的感觉就是有毛病 定义了这么些常量有什么用处!!!! 直接一个字符串比较不好么?
我的同事说,大牛的做法总有其道理,来个大牛告诉我这是为什么?

回复内容:

PHP中一些奇怪的写法!这是为什么?

如图所示
为什么要再给Areturn这个类再次定义一个json属性呢? 这个属性就是"json"这个字符串,为什么不直接引用呢?

在我见过的别人封装的类中,此种例子比比皆是,为什么呢?
再例如这个
PHP中一些奇怪的写法!这是为什么?

这个
这个给我的感觉就是有毛病 定义了这么些常量有什么用处!!!! 直接一个字符串比较不好么?
我的同事说,大牛的做法总有其道理,来个大牛告诉我这是为什么?

防止今后修改字面量的时候,有重复劳动。

在类内定义 CONST 常量之后,在其他地方调用只需要用这个常量就可以了,如果要修改的话,只需要修改一处即可。

请学习一下有关代码重构的知识。

  1. 何为常量,就是在你以后程序运行时,不会被修改的值。配置一类的数据作为常量是合理的。且可读性高,更易维护。

  2. 如果有一天你突然发现常量的值不合理,需要修改,这时只需要改一处地方就好,更加简单模块化。

  3. 这跟PHP无关,常量在不同语言不同平台都会用到。

以上

为了可读性吧,但这样会降低性能,因为要到查两次符号表

  1. 第一张图里面那个有点多余, 可以直接使用 "json", 猜测定义了常量的好处是进行了限制, 比如有人不清楚的情况下会写 "JSON"

  2. 第二张图 使用了定义之后, 是让人望文生义, 不然全是数字, 以后你自己看也不知道这些数字是干嘛用的

1、对数字定义常量有助于阅读

if ($count > 20)
if ($count > MAX_POST)

2、对重构友好,只要修改一下常量,所有地方都改到了,否则你要到处去找20改成30

3、文字常量对错误友好
define('FOOBAR', 'foobar');

fn(FOOBAZ); // 错误,常量不存在

fn('foobaz'); // 除非fn里面去检查参数是否等于foobar,否则拼写错误不会在编译阶段提示

最后,啥都有个度,控制度是个经验问题

很简单,所有编程语言里都会遇到的情况。

定义一个常量或是宏。
1、从代码语义上可以使代码可读性提高,比如写TINKINGIMAGE_GD总是比写 1 要好读,而且不容易出错
2、万一需要修改这个常量,只改一处就好了
比如,将来万一“json”要都改成“json v2.0”。

1、提高可读,例如NEWS::STATUS_DETETED 就是删除的了
2、IDE自动提示
3、方便修改

亲身经历:
以前正常状态值为0,散落在程序的各个角落,之后为了状态表示方式与其他系统模型统一,要改成1为正常。
花了很长时间(好几个小时,事后几天还零星碰到没找到的)。如果你定义了常量则不必这样。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.