2
การประกาศฟิลด์ในคลาสจริง ๆ แล้วเป็นอันตรายใน PHP หรือไม่
พิจารณาโค้ดต่อไปนี้ซึ่งตัวตั้งค่าใช้งานไม่ได้เนื่องจากเจตนาผิดพลาดในการตั้งโปรแกรมแบบธรรมดาที่ฉันเคยทำมาแล้วสองสามครั้งในอดีต: <?php class TestClass { private $testField; function setField($newVal) { $testField = $newVal; // deliberately broken; should be `$this->testField = $newVal` } function getField() { return $this->testField; } } $testInstance = new TestClass(); $testInstance->setField("Hello world!"); // Actually prints nothing; getField() returns null echo $testInstance->getField(); ?> ความจริงที่ฉันประกาศ$testFieldที่ด้านบนของชั้นเรียนช่วยปกปิดข้อผิดพลาดในการเขียนโปรแกรมจากฉัน หากฉันไม่ได้ประกาศเขตข้อมูลฉันจะได้รับข้อความคล้ายกับคำเตือนต่อไปนี้ที่พิมพ์ลงในบันทึกข้อผิดพลาดของฉันเมื่อเรียกสคริปต์นี้ซึ่งอาจเป็นประโยชน์ในการช่วยแก้ไขข้อบกพร่องของฉัน - โดยเฉพาะอย่างยิ่งถ้าฉันทำข้อผิดพลาดเช่นนี้ แอปพลิเคชันในโลกแห่งความจริงที่มีขนาดใหญ่และซับซ้อน: …
13
php