predefinidas metodos listado funciones funcionalidades ejemplos comandos php html variables function

metodos - En PHP es posible usar una función dentro de una variable



listado funciones php (3)

Sé que en PHP puedes insertar variables dentro de variables, como:

<? $var1 = "I/'m including {$var2} in this variable.."; ?>

Pero me preguntaba cómo y si era posible incluir una función dentro de una variable. Sé que podría escribir:

<?php $var1 = "I/'m including "; $var1 .= somefunc(); $var1 = " in this variable.."; ?>

Pero, ¿qué ocurre si tengo una variable larga para la salida y no quiero hacer esto todas las veces o quiero usar varias funciones?

<?php $var1 = <<<EOF <html lang="en"> <head> <title>AAAHHHHH</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> </head> <body> There is <b>alot</b> of text and html here... but I want some <i>functions</i>! -somefunc() doesn''t work -{somefunc()} doesn''t work -$somefunc() and {$somefunc()} doesn''t work of course because a function needs to be a string -more non-working: ${somefunc()} </body> </html> EOF; ?>

O quiero cambios dinámicos en esa carga de código:

<? function somefunc($stuff) { $output = "my bold text <b>{$stuff}</b>."; return $output; } $var1 = <<<EOF <html lang="en"> <head> <title>AAAHHHHH</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> </head> <body> somefunc("is awesome!") somefunc("is actually not so awesome..") because somefunc("won/'t work due to my problem.") </body> </html> EOF; ?>

¿Bien?


Las llamadas a funciones dentro de cadenas son compatibles desde PHP5 al tener una variable que contiene el nombre de la función a llamar:

<? function somefunc($stuff) { $output = "<b>{$stuff}</b>"; return $output; } $somefunc=''somefunc''; echo "foo {$somefunc("bar")} baz"; ?>

saldrá " foo <b>bar</b> baz ".

Sin embargo, me resulta más fácil (y esto funciona en PHP4) llamar a la función fuera de la cadena:

<? echo "foo " . somefunc("bar") . " baz"; ?>

o asignar a una variable temporal:

<? $bar = somefunc("bar"); echo "foo {$bar} baz"; ?>


"bla bla bla".function("blub")." and on it goes"


Ampliando un poco lo que Jason W dijo:

I find it easier however (and this works in PHP4) to either just call the function outside of the string: <? echo "foo " . somefunc("bar") . " baz"; ?>

También puede insertar esta llamada a la función directamente en su html, como:

<? function get_date() { $date = `date`; return $date; } function page_title() { $title = "Today''s date is: ". get_date() ."!"; echo "$title"; } function page_body() { $body = "Hello"; $body = ", World!"; $body = "/n
/n"; $body = "Today is: " . get_date() . "/n"; } ?> <html> <head> <title><? page_title(); ?></title> </head> <body> <? page_body(); ?> </body> </html>