Devdit
 

Call to private method from global scope คือ วิธีแก้ไข

1.3K

ฝึกเขียนภาษา PHP แบบ OOP แต่รันแล้วขึ้น Error ว่า Fatal error: Uncaught Error: Call to private method Hello::welcome() from global scope ไม่เข้าใจว่าปัญหาคืออะไร โค้ดบางส่วนตามด้านล่าง

<?php
    class Hello {
        private function welcome() {
            return "Hello World";
        }
    }
    $objHello = new Hello();
    echo $objHello->welcome();
?>

 

วิธีแก้ไข

ปัญหานี้เกิดจากฟังก์ชัน welcome กำหนดระดับการเข้าถึงเป็น private ซึ่ง private สามารถเข้าถึงได้เฉพาะภายใน class เท่านั้น หากต้องการเรียกใช้นอก class ให้เปลี่ยน private เป็น public สามารถแก้ไขโค้ดได้ดังนี้

<?php
    class Hello {
        public function welcome() {
            return "Hello World";
        }
    }
    $objHello = new Hello();
    echo $objHello->welcome();
?>

ผลลัพธ์

Hello World
แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ