ホームページ  >  記事  >  バックエンド開発  >  PHP の先生が教えてくれなかった知識ポイント

PHP の先生が教えてくれなかった知識ポイント

WBOY
WBOYオリジナル
2016-06-23 13:08:251976ブラウズ

PHPの先生が教えてくれなかった知識ポイント

別の書き方には驚きがある

いくつかのソースコードを読むと、

//异常写法if(false == $result)//正常写法if($result == false)

のような別の書き方があることがわかります実際、これは非常に賢い書き方であり、手動エラーによって引き起こされる重大なバグを大幅に取り除くことができます。

通常のメソッドで == を = と誤って書くと、if($result = false) が常に true を返してしまうため、実際の動作では未知のバグが発生します 異常な書き方を使用して手動エラーが発生すると、 if(false = $false) の場合、エディターはエラーをスローし、問題を時間内に見つけて修正できます。

'0296e2a28d4b4eee86c46ac40ae4a2cc の後に空白行がある場合は、省略してください。ファイル内で session_start() やその他のメソッドを使用している場合、xxx によって既に送信された警告ヘッダーが返されます。これは、session_start() が使用前に出力を必要としないためです。

同様に、

文字列と数字が一緒にある場合は注意してください

var_dump('a'.0); //返回error,语法错误

解決策は、文法上のエラーを防ぐために . 接続の前後にスペースを追加するだけです。

var_dump ('abc' == 0); //输出truevar_dump ('1abc' == 0); //输出false

実際、PHP で文字列と数値を比較する場合、文字列は強制的に int に変換され、文字列が数値で始まる場合は、開始数値が取得されます。 . 変換結果として先頭が数字でない場合は0になります

文字列操作は無理です

for ($i = 'a'; $i <= 'z'; ++$i) {    echo "$i ";}

aからzまで出力されると思いますか?出力結果は次のようになります:

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 

精度の損失には常に注意してください

$f = 0.58;echo intval($f * 100); // 输出57sprintf("%.2f",$f * 100); //输出58.00

精度の損失の問題は他の言語でも発生しますが、PHP のような弱い型付け言語ではより必要です。 。

実際、上記の問題は PHP のマニュアルに記載されており、マニュアルを 100 回読んでコーディングすれば、ある程度の注意と経験があれば、話せるようになります。溝を埋めて発展の道を前進することができます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。