stream_resolve_include_path() seems to cache it's output. After I renamed a file, I had to restart Apache for stream_resolve_include_path() to not return non-existing file name. This was on Windows.(PHP 5 >= 5.3.2, PHP 7, PHP 8)
stream_resolve_include_path — Resuelve un nombre de fichero siguiendo las reglas de la ruta de inclusión
   Resuelve el nombre de fichero filename utilizando
   la ruta de inclusión, siguiendo las mismas reglas que las funciones
   fopen()/include.
  
filenameEl nombre de fichero a resolver.
   Devuelve un string que contiene el nombre de fichero absoluto resuelto,
    o false si ocurre un error.
  
Ejemplo #1 Ejemplo con stream_resolve_include_path()
Ejemplo simple de utilización.
<?php
var_dump(stream_resolve_include_path("test.php"));
?>Resultado del ejemplo anterior es similar a:
string(22) "/var/www/html/test.php"
stream_resolve_include_path() seems to cache it's output. After I renamed a file, I had to restart Apache for stream_resolve_include_path() to not return non-existing file name. This was on Windows.In some case like this, you can't use `realpath()` or `file_exists()` without resolve its path.
Example:
file.php
subfolder/
..|- included.php
..|- subfolder/
.........|- another-included.php
file.php contents:
```
<?php
var_dump(file_exists('subfolder/included.php'));// true
include 'subfolder/included.php';
?>
```
subfolder/included.php contents:
```
<?php
var_dump(file_exists('subfolder/another-included.php'));// false but the file is really exists.
var_dump(file_exists(stream_resolve_include_path('subfolder/another-included.php')));// with `stream_resolve_include_path()` function, it returns true now.
include 'subfolder/another-included.php';// working fine, no errors.
?>
```
subfolder/subfolder/another-included.php contents:
```
<?php
echo 'Hello world';
?>
```