[讨论] 从error_reporting(2047)谈开去?

程序猿之殇 2010-07-22 11:02:38
error_reporting(2047);有什么作用?
这是一道面试题.
无非查找最原始的出处,但可以肯定的是,出这道题的人,肯定是个XX.
欢迎讨论.
...全文
597 点赞 收藏 30
写回复
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
task555 2010-09-06
估计当年出这个题目的那时还是到1024这样error_reporting(2047) = error_reporting(E_ALL)

只是现在出题人都不花脑子,谷歌一下就照搬来的。
回复
task555 2010-09-06
[Quote=引用 27 楼 jakey9826 的回复:]

1 用数字不是一个好习惯.
php手册
http://cn.php.net/manual/en/errorfunc.constants.php

E_ALL
30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously

2 PHP也是会升级的,好多以前的面试题也应该换换了,或者增加一些前提条件.
另外, 这样的写法, 本身就……
[/Quote]

2047 = E_ALL那是n多年前的事情了。
回复
task555 2010-09-06
这道题n年前我面试时就考过,现在还在考?如果我再碰到这样的考官我就会问他是否是在浪费你我的时间?如果他说不是的话,我就拿这道题问他,如果他能回答出来我立马消失。

error_reporting 的取值是以2的次方定义的

如1楼所写的,并且可以使用"|"来进行组合。

2047 = 2^11 - 1,就是说这个数值有11个1,组合就是前11项的"|"的组合,要记住11个error_reporting的值,要哪天那个更变态的来个error_reporting(16383)........
回复
CunningBoy 2010-07-22
面试题都和面试官正相关,也许就是随便出了到题呢?考虑那么多干啥。
正经回答可以是:
1)向上面说的那样把原理和结果解释清楚,不过手边没手册的话,也挺难得。
2) 只解释计算原理
3) 直接回答不知道
不正经的回答可以是:
1) 请查PHP手册;
2) 给我手册,我能给你答案;
3) 手册上能查到的东西,哥从不记在脑袋里;
回复
床上等您 2010-07-22
哥都不懂这些呢。。。
回复
CodeBus 2010-07-22
[Quote=引用 15 楼 diannaomingong 的回复:]

啊我第一个回帖而且说那么明白你们居然无视了,太伤心了
[/Quote]
别伤心,哥懂你。。 那的确是 | 不是 +
回复
diannaomingong 2010-07-22
啊我第一个回帖而且说那么明白你们居然无视了,太伤心了
回复
kyzy_yy_pm 2010-07-22
[Quote=引用 4 楼 woshimajia0003 的回复:]
2047 = 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

就这么简单!
[/Quote]
呵呵,怎么和权限似的,不错,明白了
回复
feirou521 2010-07-22
不太懂!
回复
程序猿之殇 2010-07-22
[Quote=引用 5 楼 woshimajia0003 的回复:]
1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

这些代号的错误 就是 2047的!

想不到 我堂堂一个菜鸟,还能回答你这种得三个勋章的高手的问题
[/Quote]
勋章多不代表什么,只能代表在某个时间段比较热心,仅此而矣.
回复
程序猿之殇 2010-07-22
[Quote=引用 10 楼 amani11 的回复:]

关键是这题面试要遇到,写点什么,我觉得自己差不多就跨了

[/Quote]
嗯.有道理,你这也是一种思路.
如果能使自己的回答让面试官有耳目一新的感觉.
面试的艺术.
学到了一点,呵呵.
回复
amani11 2010-07-22
[Quote=引用 5 楼 woshimajia0003 的回复:]

1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

这些代号的错误 就是 2047的!

想不到 我堂堂一个菜鸟,还能回答你这种得三个勋章的高手的问题
[/Quote]

LZ勋章13个都不止…………呵呵

关键是这题面试要遇到,写点什么,我觉得自己差不多就跨了
回复
程序猿之殇 2010-07-22
[Quote=引用 4 楼 woshimajia0003 的回复:]
2047 = 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

就这么简单!
[/Quote]
OK,你挺狠,还挨个计算了一次.
不过思路是正确的.
回复
amani11 2010-07-22
❤酸啊,说不出什么,一般开发调试的时候E_ALL

否则会,E_ALL ^ E_NOTICE ^ E_WARNING 我好像习惯了这样?没手册,对应的数字最多能写4个

另:LZ说的XX是啥意思呢?
回复
CodeBus 2010-07-22
[Quote=引用 5 楼 woshimajia0003 的回复:]

1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

这些代号的错误 就是 2047的!

想不到 我堂堂一个菜鸟,还能回答你这种得三个勋章的高手的问题
[/Quote]
其实楼主是想讨论这道题对于面试而言的作用..
回复
CodeBus 2010-07-22
只用过error_reporting(7);
E_ALL 现在好像是 30719
E_STRICT怎么理解呢
回复
woshimajia0003 2010-07-22
1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

这些代号的错误 就是 2047的!

想不到 我堂堂一个菜鸟,还能回答你这种得三个勋章的高手的问题
回复
woshimajia0003 2010-07-22
2047 = 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

就这么简单!
回复
程序猿之殇 2010-07-22
欢迎讨论,
呵呵.
抛砖引玉而矣.
回复
diannaomingong 2010-07-22
没php手册我也不知道具体是哪些,谁吃饱了去背那些值

都是
error_reporting(E_X | E_Y....) 这样用
否则要定义那些E_X干嘛, 用magic_number那是很初级的
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告