Keanehan bahasa pemrograman PHP

December 11, 2010

4 min read.

Apa yang terjadi jika kode php di bawah ini dijalankan.



Tentu yang diharapkan akan muncul daftar huruf dari a sampai z, seperti halnya pada bahasa pemrograman yang lain. Namun hasil yang muncul berupa daftar huruf dari a sampai yz.

a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac 
ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw
ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq
br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck
cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de
df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy
dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es
et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm
fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg
gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha
hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu
hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io
ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji
jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc
kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw
kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq
lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk
ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne
nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny
nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os
ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm
pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg
qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra
rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru
rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so
sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti
tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc
ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw
ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq
vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk
wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe
xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy
xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys
yt yu yv yw yx yy yz
hasil source code

Kenapa?

Hal ini terjadi karena PHP mengikuti bahasa pemrograman Perl untuk melakukan operasi aritmetik pada karakter.
PHP follows Perl’s convention when dealing with arithmetic operations on character variables and not C’s.

For example, in Perl ‘Z’+1 turns into ‘AA’, while in C ‘Z’+1 turns into ‘[’ ( ord(‘Z’) == 90, ord(’[‘) == 91 ).

Note that character variables can be incremented but not decremented and even so only plain ASCII characters (a-z and A-Z) are supported.

diambil dari php docs