Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com função


neo_soro

Pergunta

Falem p*,

eu crirei um simples função para que não precise ficar toda hora printando as variáves escrevendo:

print "<pre>";print_r($var);print "</pre>";
A função é essa:
function printvar($var){
    $print = print"<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
    $print .= print_r($var);
    $print .= print"</pre>";
}
Essa função, quando usamos o Eclipse, ou Zend e é colocada no fim de uma classe que é incluida em todos os arquivos dá impressão que é uma função do programa mesmo. Fica muito interessante. Tipo:
class Fachada{
//functions, etc
}
function printvar($var){
    $print = print"<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
    $print .= print_r($var);
    $print .= print"</pre>";
}
Certo até aí tudo bem, mas o que eu queria era poder passar mais de uma variável para função. Ex:
$x = "Recebe um";
$y = "Recebe dois";

printvar($x, $y);
Mesmo que ela receba apenas um parâmetro.
function printvar($var){

Será que alguém poderia me ajudar? Agradeço desde já.

[]'s

Rodrigo Nascimento

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

i aew neo_soro, já tentou tipo assim:

function printvar($var , $var2 = null ){
    $print = print"<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
    $print .= print_r($var);
    $print .= print"</pre>";
}

ai você pode checar se $var2 é nula e fazer as condiçoes!

espero que ajude abraço;

Link para o comentário
Compartilhar em outros sites

  • 0
i aew neo_soro, já tentou tipo assim:

function printvar($var , $var2 = null ){
    $print = print"<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
    $print .= print_r($var);
    $print .= print"</pre>";
}

ai você pode checar se $var2 é nula e fazer as condiçoes!

espero que ajude abraço;

Fale Romerito, cara nõ entendi bem o que você quiz dizer. Tipo no caso não seria uma ou duas saca? poderiam ser quantas eu quisesse.

[]'s valeu

Link para o comentário
Compartilhar em outros sites

  • 0

i aew neo_soro, bom você tem que declarar o numero de argumentos na função, na chamada dela não necessariamente

você precisa passar todos os parametros, pegando como exemplo aquela sua função:

function printvar($var , $var2 = null ){/*aqui $var2 é setado com valor padrão nulo, portanto caso você não especifique o segudo parametro ele sera setado como nulo e será opcional*/
    $print = print"<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
    $print .= ( $var2 ) ? print_r( $var . $var2 ) : print_r( $var );/*se $var2 não for nula    vai receber o print_r de $var1 concatenado de $var2, senão receb o print_r apenas de $var*/
    $print .= print"</pre>";
}

o segundo parametro da função é opcional, você não precisa passar nada pra ele saca?

e dentro da função você pode fazer algumas checagens igual eu está no exemplo!

Editado por Romerito
Link para o comentário
Compartilhar em outros sites

  • 0
i aew neo_soro, bom você tem que declarar o numero de argumentos na função, na chamada dela não necessariamente

você precisa passar todos os parametros, pegando como exemplo aquela sua função:

function printvar($var , $var2 = null ){/*aqui $var2 é setado com valor padrão nulo, portanto caso você não especifique o segudo parametro ele sera setado como nulo e será opcional*/
    $print = print"<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
    $print .= ( $var2 ) ? print_r( $var . $var2 ) : print_r( $var );/*se $var2 não for nula    vai receber o print_r de $var1 concatenado de $var2, senão receb o print_r apenas de $var*/
    $print .= print"</pre>";
}
o segundo parametro da função é opcional, você não precisa passar nada pra ele saca? e dentro da função você pode fazer algumas checagens igual eu está no exemplo!
Pods crer cara. Isso eu tinha entendido. =) Na verdade o que acontece é o seguinte. No início da função
function printvar($var)
Eu gostaria que o prâmetro tivesse um comportamente de um array, saca? Para que depois eu pudesse printar quantas variáveis eu tivesse passado como parâmetro, tipo:
$var = array();
function printvar($var){
for($i = 0; $i <count($var); $i++){
    $print = print"<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
    $print .= print_r($var[$i]);
    $print .= print"</pre>";
}

}
$var = 'Um';
$var2 = 'Dois';
$var3 = 'Três';
printvar($var, $var2, $var3);

Esse exemplo é fictício, porque eu já testei e não funcionou! =P Mas é por aí que eu queria fazer... Mas de qualquer forma obrigado pela ajuda até agora.

[]'s Rodrigo Nascimento

Link para o comentário
Compartilhar em outros sites

  • 0

para isso existe a função func_get_args, ela te retorna como array os argumentos da função!

EDIANTANDO

bom acho que entende o que tu quer, tenta assim:

function printvar( $var )
{
    $print = "";
    foreach( $var as $value )
    {
        $print .= print "<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
        $print .= print_r( $value );
        $print .= print "</pre>";
    }
    return $print;
}
$array = array( 1 , 2 , 3 );
echo printvar( $array );

Editado por Romerito
Link para o comentário
Compartilhar em outros sites

  • 0
para isso existe a função func_get_args, ela te retorna como array os argumentos da função!

EDIANTANDO

bom acho que entende o que tu quer, tenta assim:

function printvar( $var )
{
    $print = "";
    foreach( $var as $value )
    {
        $print .= print "<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
        $print .= print_r( $value );
        $print .= print "</pre>";
    }
    return $print;
}
$array = array( 1 , 2 , 3 );
echo printvar( $array );
Fala Romerito, com aquela função func_get_args eu consegui resolver ficou assim:
function printvar($var){
    $arglist = func_get_args();
    for($i = 0; $i<count($arglist); $i++){
        $print = print"<pre style='border: 1px solid #000; background: #BF7E17; color: #fff; font-size: 10px;'>";
        $print .= print_r($arglist[$i]);
        $print .= print"</pre>";
    }
    return $print;    
}

Muito simples!!! cara valeu, obrigado mesmo. espero que fique aí para outros que também achem um saco ficar printando as variáveis e ficar escrevendo um montão pra isso UHAUHauHAU.

[]'s Rodrigo Nascimento

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...