Fix using array_key_exists() on objects, it is deprecated in PHP 7.4

This commit is contained in:
Nicolas Grekas
2019-08-01 16:18:22 +02:00
parent ef4ae447f9
commit d0550b7a68
+2 -2
View File
@@ -537,7 +537,7 @@ abstract class Template implements \Twig_TemplateInterface
if (self::METHOD_CALL !== $type) {
$arrayItem = \is_bool($item) || \is_float($item) ? (int) $item : $item;
if (((\is_array($object) || $object instanceof \ArrayObject) && (isset($object[$arrayItem]) || \array_key_exists($arrayItem, $object)))
if (((\is_array($object) || $object instanceof \ArrayObject) && (isset($object[$arrayItem]) || \array_key_exists($arrayItem, (array) $object)))
|| ($object instanceof \ArrayAccess && isset($object[$arrayItem]))
) {
if ($isDefinedTest) {
@@ -604,7 +604,7 @@ abstract class Template implements \Twig_TemplateInterface
// object property
if (self::METHOD_CALL !== $type && !$object instanceof self) { // \Twig\Template does not have public properties, and we don't want to allow access to internal ones
if (isset($object->$item) || \array_key_exists((string) $item, $object)) {
if (isset($object->$item) || \array_key_exists((string) $item, (array) $object)) {
if ($isDefinedTest) {
return true;
}