PHP7 + JavaScript, 62 61 58 байт
Это было на самом деле сложнее, чем я ожидал! Я очень удивлен тем, как долго мой код.
eval(['alert((_=prompt())*_)','echo$argv[1]**.5'][+![]]);
Как это работает?
Это работает путем выбора кода для запуска из массива.
Обнаружение PHP и JavaScript производится с помощью +![].
В PHP [](пустой массив) является ложным значением, в то время как в JavaScript это истинное значение (объекты (кроме null) всегда являются правдивыми, даже new Boolean(false)правдивыми!).
Но мне нужно получить его в числовое значение, поэтому я просто использую not( !) и преобразую его в целое число (с помощью +).
Теперь, PHP дает значение 1, в то время как дает JavaScript 0.
Размещение кода внутри массива с такими индексами позволит нам выбрать правильный код для нужного языка.
Это можно использовать как[JS,PHP][+![]] для получения кода на нужном языке.
В предыдущих полиглотах, которые я использовал '\0'=="\0", trueв JavaScript (поскольку \0он анализируется как NULL-байт) и falseв PHP ( '\0'он не будет анализироваться как NULL-байт, сравнивая буквенную строку \0с NULL-байтом).
Я счастлив, что мне удалось сократить этот чек до +!'0'.
Я еще более доволен @rckd , который сократил его до текущей версии!
С этого evalмомента , это просто необходимый код.
PHP
PHP выполнится echo$argv[1]**.5(эквивалентно echo sqrt($argv[1]);квадратному корню из числа), получит значение из второго аргумента и отобразит его в стандартном выводе.
JavaScript
Выполняется JavaScript alert((_=prompt())*_), который отображает квадратное число в alert.
Спасибо @rckd за сохранение 1 байта и @ user59178 за сохранение 3 байта!