Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

จะลบฟังก์ชั่นที่รันไทม์ใน PHP ได้อย่างไร?


ฟังก์ชั่นและคลาสใน PHP มีขอบเขตทั่วโลก ซึ่งหมายความว่าสามารถเรียกใช้นอกฟังก์ชันได้แม้ว่าจะถูกกำหนดไว้ภายในขอบเขตและในทางกลับกัน

แต่ PHP ไม่รองรับฟังก์ชันโอเวอร์โหลด และไม่สามารถกำหนดฟังก์ชันที่ประกาศไว้ก่อนหน้านี้ใหม่ได้

ฟังก์ชันนี้กำหนดเป็นฟังก์ชันที่ไม่ระบุตัวตนได้ และสามารถยกเลิกการตั้งค่าได้หลังจากดำเนินการเสร็จสิ้น

ด้านล่างนี้เป็นตัวอย่างโค้ดสำหรับสิ่งเดียวกัน -

if (function_exists('get_magic_quotes_gpc') && @get_magic_quotes_gpc())
   $my_fn = create_function('&$v, $k', '$v = stripslashes($v);');
   array_walk_recursive(array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST), $my_fn);
   unset($my_fn);
}

ไม่สามารถเรียกฟังก์ชันที่ไม่ระบุตัวตนภายในตัวมันเองได้ วิธีแก้ปัญหาคือใช้ array_walk_recursive