ถามโค้ดBasic PHP หน่อยจ้า

ถ้าโค้ดเป็นแบบนี้
<html>
    <body>
        <?
        echo "\n<ol>";
        for($i='a';$i<"z";$i++){
            echo "<li> item number $i </li>";
        }
        echo "</ol>";
        ?>
    </body>
</html>
จะได้ตามรูปนี้

http://upic.me/t/y0/56untitled.png

แต่ถ้าเพิ่มตัว = ที่ขีดเส้นใต้
<html>
    <body>
        <?
        echo "\n<ol>";
        for($i='a';$i<="z";$i++){
            echo "<li> item number $i </li>";
        }
        echo "</ol>";
        ?>
    </body>
</html>

ทำไมเป็นแบบนี้ครับ

http://upic.me/t/7v/6untitled2.png
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
เขียน PHP มาสิบกว่าปี เพิ่งรู้เหมือนกันครับ

จากเอกสาร
http://php.net/language.operators.increment
จะเห็นว่าการใช้ ++ กับสตริงจะมีลักษณะพิเศษ คือ เมื่อเพิ่ม a ไปจนถึง z แล้ว
ตัวต่อไปก็คือ aa, ab, ac, ..., az, ba, bb, ... ไปเรื่อยๆ (เหมือนกับคอลัมน์ใน
สเปรดชีต)

นั่นคือเมื่อโปรแกรมล่างรัน a, b, c, ... ไปจนถึง z แล้ว เนื่องจาก z = z ดังนั้น
จึงไปเพิ่มค่าอีก กลายเป็น aa ซึ่งก็ยังน้อยกว่า z (เมื่อเปรียบเทียบแบบข้อความ)
ดังนั้นโปรแกรมจึงรันไปเรื่อยๆ จนถึง yx, yy, yz ซึ่งเมื่อตัวต่อไปคือ za ซึ่งมากกว่า
z แล้ว โปรแกรมจึงหยุดลงตรงนี้

ในเอกสารข้างต้นยังให้เหตุผลว่าที่เป็นแบบนี้ก็เพราะทำงานเหมือนกับภาษา Perl
ซึ่งก่อนหน้าจะมี PHP ก็เป็นภาษาที่นิยมใช้เขียนเว็บกันมากภาษาหนึ่ง
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่