本系列專為從PHP之外的語言開啟碼農人生、卻因命運安排整天與PHP為伍的人撰寫,收集一些從其他語言的角度看來不可思議的設計。如果能讓在讀這篇文章的你在實務上踩到而懷疑人生前就釋懷,就是我莫大的榮幸。
前言
繼前篇gethostbyname(),本篇討論少見於PHP之外的設計:varying case sensitivity,也就是某些情況下大小寫相關,某些情況下大小寫無關。總之,就是任性。
可能因為我個人有經年累月的大小寫相關的程式編寫習慣,再加上linter層層把關,我大概兩年多才發現有這個特性,當下簡直是晴天霹靂、茅廁頓開,在這非黑即白的大小寫相關性世界,PHP竟仍能為我們開一扇窗;彷彿在提醒我們,看待世間萬物切勿抱持成見,才能看見真實。
常有人說PHP是如詩般的語言,這,何嘗不正是其獨有的詩意呢?
嘴夠了,進入正題
更精確來講,PHP的大小寫相關性是:
- 函式名、命名空間名與類別名大小寫無關
- 變數名、常數名大小寫相關
…

大部分的時候這都只會造成一些小驚喜,像這樣:
class Foo { const ABC = 'I am a constant'; static function bar() { ... } } $poetry = 'I am a variable'; Foo::bar(); // 可以 foo::Bar(); // 嗯,有何不可 print_r( $poEtry ); // 不行喔 print_r( Foo::aBC ); // 討厭,就說不行了,都欺負人家 ...
但一個沒站穩,玻璃心還是會摔碎的。
繼續閱讀 “我們與PHP的距離(二): 任性的大小寫"