Estoy tratando de usar nombres de variables dinámicas (no estoy seguro de cómo se llaman realmente) Pero más o menos así:
for($i=0; $i<=2; $i++) {
$("file" . $i) = file($filelist[$i]);
}
var_dump($file0);
El retorno es lo nullque me dice que no está funcionando. No tengo idea de cuál es la sintaxis o la técnica que estoy buscando, lo que dificulta la investigación. $filelistse definió anteriormente
php
variables
dynamic
dynamic-variables
usuario1159454
fuente
fuente

Respuestas:
Envuélvelos en
{}:Ejemplo de trabajo
Usar
${}es una forma de crear variables dinámicas, ejemplo simple:fuente
${'fixedTime$i'} = $row['timeInstance'];le da un no muy útil en$fixedTime$ilugar de$fixedTime1, $fixedTime2etc. (Afortunadamente loVisión general
En PHP, solo puede poner un extra
$delante de una variable para convertirla en una variable dinámica:Si bien no lo recomendaría, incluso podría encadenar este comportamiento:
Puede, pero no está obligado a poner
$variableNameentre{}:El uso
{}solo es obligatorio cuando el nombre de su variable es en sí mismo una composición de múltiples valores, como este:Sin embargo, se recomienda usar siempre
{}, porque es más legible.Diferencias entre PHP5 y PHP7
Otra razón para usar siempre
{}es que PHP5 y PHP7 tienen una forma ligeramente diferente de tratar con variables dinámicas, lo que resulta en un resultado diferente en algunos casos.En PHP7, las variables dinámicas, las propiedades y los métodos ahora se evaluarán estrictamente en orden de izquierda a derecha, a diferencia de la combinación de casos especiales en PHP5. Los siguientes ejemplos muestran cómo ha cambiado el orden de evaluación.
Caso 1 :
$$foo['bar']['baz']${$foo['bar']['baz']}${$foo}['bar']['baz']Caso 2:
$foo->$bar['baz']$foo->{$bar['baz']}$foo->{$bar}['baz']Caso 3:
$foo->$bar['baz']()$foo->{$bar['baz']}()$foo->{$bar}['baz']()Caso 4:
Foo::$bar['baz']()Foo::{$bar['baz']}()Foo::{$bar}['baz']()fuente
Intenta usar en
{}lugar de():fuente
$price_for_monday = 10; $price_for_tuesday = 20; $today = 'tuesday'; $price_for_today = ${ 'price_for_' . $today}; echo $price_for_today; // will return 20Hago esto con bastante frecuencia en los resultados devueltos por una consulta.
p.ej
Ahora puedo usar $ MyFieldname (que es más fácil en declaraciones de eco, etc.) en lugar de $ MyQueryResult ['MyFieldname']
Sí, probablemente sea flojo, pero nunca he tenido ningún problema.
fuente
Tom, si tienes una matriz existente, puedes convertir esa matriz en objeto y usarla así:
fuente
Tengo una solución para el valor variable creado dinámicamente y combiné todo el valor en una variable.
fuente
Estaba en una posición donde tenía 6 matrices idénticas y necesitaba elegir la correcta dependiendo de otra variable y luego asignarle valores. En el caso que se muestra aquí, $ comp_cat era 'a', así que necesitaba elegir mi matriz 'a' (también, por supuesto, tenía matrices 'b' a 'f')
Tenga en cuenta que los valores para la posición de la variable en la matriz van después de la llave de cierre.
fuente
Intente usar {} en lugar de ():
fuente