PHP 8.5: "Using null as an array offset" deprecation in acf_pro_options_page::get_page() (pro/options-page.php:226)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Comience en pro/options-page.php, en acf_pro_options_page::get_page(), y después reproduzca la deprecación de PHP 8.5 con WP_DEBUG y WP_DEBUG_LOG habilitados. Asegúrese de que los slugs null y vacíos conserven su comportamiento existente sin registrar la deprecación; revise también los patrones relacionados de desplazamiento de arrays en las líneas 140, 145 y 207.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
On PHP 8.5, ACF PRO 6.8.9 logs this on a large share of requests — about 850 entries a day on our site:
PHP Deprecated: Using null as an array offset is deprecated, use an empty string instead in wp-content/plugins/advanced-custom-fields-pro/pro/options-page.php on line 226
Line 226 is the body of acf_pro_options_page::get_page():
function get_page( $slug ) {
return isset( $this->pages[ $slug ] ) ? $this->pages[ $slug ] : null;
}
It is being called with $slug === null, and PHP 8.5 deprecates using null as an array offset.
To Reproduce
- Run ACF PRO 6.8.9 on PHP 8.5 with
WP_DEBUGandWP_DEBUG_LOGenabled, on a site with options pages registered. - Load front-end and admin pages.
- See the deprecation in
wp-content/debug.log.
We have not pinned down which caller passes the null slug; anything that reaches get_page() with null triggers it.
Expected behavior
No deprecation. A null key has always addressed the same array entry as '', so converting it first changes nothing about what the method returns:
function get_page( $slug ) {
if ( null === $slug ) {
$slug = '';
}
return isset( $this->pages[ $slug ] ) ? $this->pages[ $slug ] : null;
}
Tested on PHP 8.5: get_page( null ) still returns the page stored under '', normal and missing slugs behave as before, and the deprecation no longer appears in our log (250 entries in the 40 minutes before the change).
Screenshots or Video
Not applicable — the log line is quoted above.
Code
No field group export needed; the notice comes from pro/options-page.php itself.
Version Information:
- WordPress Version 7.1
- PHP Version 8.5.8
- ACF Version ACF PRO 6.8.9
- Browser not applicable (server-side)
Additional context
The same $this->pages[ $slug ] pattern also appears on lines 140, 145 and 207 of pro/options-page.php. They are not firing for us, but they would raise the same notice if they ever received a null slug, so they may be worth the same guard.
- Lenguaje dominante
- PHP
- Estrellas
- 946
- Forks
- 197
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de AdvancedCustomFields/acf
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
AdvancedCustomFields/acf#1041 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
AdvancedCustomFields/acf#1038 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
AdvancedCustomFields/acf#1032 · 1 comentario ·
-
Drop trap, acf_after_titleAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
AdvancedCustomFields/acf#1029 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
AdvancedCustomFields/acf#1028 · 1 comentario ·
Todos los issues de AdvancedCustomFields/acf
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Yoast/wordpress-seo#23658 ·
Los mantenedores suelen responder en 3 días
-
fixed
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
firefly-iii/firefly-iii#12934 · 2 comentarios ·
Los mantenedores suelen responder en 1 día