MDL-66968 php74: array_key_exists() for objects is deprecated

Replace it for correct property_exists() when the element
being inspected is a property of object/class.

Amended and squased changes:
- keep mongo unmodified. The information is array, hence correct.
- fix a couple of messaging phpdocs that were incorrect.

Amended take#2:
- As far as mongo resturns BSONDocument that is ArrayObject, aka
implements ArrayAccess, we have decided to explicitly cast results
to array so existing array_key_exists() and other accesses will
continue working the same.
This commit is contained in:
Eloy Lafuente (stronk7) 2019-10-20 18:14:48 +02:00
parent aaff6692a1
commit f4feabb83f
21 changed files with 36 additions and 30 deletions

View file

@ -2192,7 +2192,7 @@ class grade_category extends grade_object {
$children_array = array();
foreach ($category->children as $sortorder=>$child) {
if (array_key_exists('itemtype', $child)) {
if (property_exists($child, 'itemtype')) {
$grade_item = new grade_item($child, false);
if (in_array($grade_item->itemtype, array('course', 'category'))) {