Heim > Backend-Entwicklung > PHP-Tutorial > PHP中一些奇怪的写法!这是为什么?

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

WBOY
Freigeben: 2016-06-06 20:13:19
Original
1229 Leute haben es durchsucht

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为正常。
花了很长时间(好几个小时,事后几天还零星碰到没找到的)。如果你定义了常量则不必这样。

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage