일단 아래 답변들은 제가 알고 있는 범위 내에서 추론해본 것들이고, 실제로 동작하는지 아닌지는 확인된 부분이 아님을 말씀드립니다.
PHP
.NET으로 DLL을 만들었고, COM에서 쓸 수 있도록 타입 라이브러리를 제공하도록 만들었다면, IDispatch 인터페이스 (닷넷 인터페이스 아님)를 구현하도록 맞추어져 있으면 “부르는 것이 가능할 수도” 있습니다. 그러나 PHP가 이런 부분을 잘 지원해야 할 필요성이 낮기 때문에, DLL 형태로 부르는 것보다는 일반적인 실행 파일 형태로 부르도록 우회해서 설계하거나, Web API 형태로 커뮤니케이션할 수 있게 만들어 내부에서 서비스 메시를 구현하도록 하는 편이 더 관리하기 좋을 수 있습니다.
이론적으로 .NET은 .NET Framework와 .NET Core 계열 모두 닷넷 환경이 아닌 곳에서 닷넷 런타임을 초기화하고 부를 수 있도록 "닷넷 호스팅 C API"를 제공합니다. 하지만 PHP에서 이런 호스팅 API를 부를 수 있는지 여부가 명확하지 않고, 부를 수 있다고 하더라도 예기치 않은 런타임 충돌이나 다른 부작용이 있을 수 있습니다. (확인이 충분히 된 부분이 아닙니다.)
NativeAOT를 사용해서 C 언어 수준에서 함수를 부를 수 있도록 .NET DLL을 컴파일했고, PHP의 FFI 관련 기능을 충족하도록 설계했다면 “부르는 것이 가능할 수도” 있습니다.
Java
Java의 경우 닷넷처럼 P/Invoke 마샬러를 직접 제공하지는 않기 때문에, 항상 JNI 규격을 맞추는 네이티브 모듈을 만들고, 이 모듈이 실제 닷넷 코드를 부르도록 만들어야 합니다.
이 때, 네이티브 코드에서는 .NET 런타임을 호스팅하는 API를 쓰거나, 흔히 쓰는 Interop 코드를 부르는 방식 (COM 등을 사용)을 이용해야 할 것이라고 생각이 듭니다.