Этот код никогда не работал, и является хорошим примером того, почему те сообщения, которые вы ранее пропустили как Уведомления, теперь являются Предупреждениями и скоро станут Ошибками.
Единственная причина, по которой это работает, -строка
!!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia);
интерпретируется PHP как конкатенация набора строк, давая вам
!!('navigatormediaDevices' && 'navigatormediaDevicesgetUserMedia')
Который по правилам жонглирования типов PHP
!!(true && true)
Какойэто просто очень сложный способ написания
true
Ваша основная проблема в этом случае заключается в том, что вы запутали JS (который может обнаружить информацию о браузере пользователя и о том, где эта строка будет делатьчто-то полезное) с PHP (который запускается на сервере до включения браузера).
Вероятно, вы хотите всегда отображать элемент управления формы в PHP, а затем показывать и скрывать его на JS.Но, прежде всего, вам нужно прочитать несколько руководств о том, как эти два элемента сочетаются друг с другом, чтобы вы не попали в такую неразбериху.