Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

InterPlanet

[Resolvido] Constante == String

Recommended Posts

Olá pessoal!

 

Descrição:

 

Tenho um arquivo com constantes, edtável pelo navegador, uma delas [ OS_ImpressaoSaida_Termo ] deve gravar valor parecido com esse:

 

Eu ".$Cliente[Nome]." declaro ter recebido o veículo acima descriminando de ".SIS_Cliente." nesta data e dou plena e total quitação dos serviços executados assinando abaixo.

 

Observem que há uma variavel de um array e outra constante no texto.

 

Problema:

 

Aqui, onde vou precisar dessa constante:

 

<?php
// TERMO
If (OS_ImpressaoSaida_Termo !== '')
  { ?>
       <tr class="Form_Titulo">
         <td class="Form_Titulo_Cel" colspan="2">Termo de Saída</td>
       </tr>
       <tr class="Form_Linha"><td class="Form_Linha_Cel" colspan="2"><div style="font-size:9px; text-align:justify;"><?= OS_ImpressaoSaida_Termo.( OS_ImpressaoSaida_TermoAssinatura === True ? '<div class="Texto" style="text-align:center;"><br>______________________________________________________<br>'.$Cliente['Tratamento'].'<br>'.$Cliente_Doc.'</div>' : '' ); ?></div></td></tr>
<? } ?>

 

Preciso que ela seja interpretada como se eu tivesse escrito o código na página:

 

Echo OS_ImpressaoSaida_Termo === Echo "Eu ".$Cliente[Nome]." declaro ... ".SIS_Cliente." ... "

 

 

 

Há alguma forma de fazer isso?

Não sei se me expressei bem, mas tentei ao máximo, rs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente Assim

class clientes{

   const ClienteNome = 'Andrey'; 

}
$a = new clientes;
echo constant('clientes::ClienteNome').'<br />';
var_dump(constant('clientes::ClienteNome'));

 

Meu Output foi:

 

Andrey
string(6) "Andrey"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada. :(

 

O problema é que dentro da constane há variavés php, exemplo:

 

define('X', 'Cliente $Cliente');

 

Claro que a var $Cliente existe na pagina onde preciso usar o valor da constante, na prática preciso que o php interprete o valor da constante como se eu desse um:

 

Echo "Cliente $Cliente";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o Erro ??

 

Exemplo Do Site Do Php

<?php

interface bar {
   const test = 'foobar!';
}
class foo {
   const test = 'foobar!';
}

$const = 'test';

var_dump(constant('bar::'. $const)); 
var_dump(constant('foo::'. $const));

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem , eu acho que isso não tem como não .. fiz um teste aqui assim .. tentei retorno com funçao propia tambem não deu

 

       $dados = 'Cliente';

          class teste{

             const Cliente = 'Cliente $dados';

          }
          echo constant('teste::Cliente');

 

saida:

 

Cliente $dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

:(

Também acho que nao vai ter jeito.

 

Fiz uma gambiarra que resolve temporariamente o problema para esta duas variaveis de que preciso, contudo, ainda preciso saber se ha alguma forma de fazer o proposto pois pode aparecer a necessidade de incluir outras variaveis php na constante e desta, além de modificar a constante tenho de modificar a pagina.

 

define('OS_ImpressaoSaida_Termo', 'Eu $_Cliente$ declaro ter recebido o veículo acima descriminando de $_Sistema$ nesta data e dou plena e total quitação dos serviços executados assinando abaixo.');

// TERMO
If (OS_ImpressaoSaida_Termo !== '')
  { $Termos                 = explode('$', OS_ImpressaoSaida_Termo);

    Foreach($Termos as $Valor)
    { If (substr($Valor, 0, 1) == '_')
         { $TMP             = substr($Valor, 1);
           Switch($TMP)
           { Case 'Cliente':
                  $Termo   .= $Cliente['Tratamento'];
                  Break;
             Case 'Sistema':
                  $Termo   .= SIS_Cliente;
                  Break;
           }
         }
      Else { $Termo        .= $Valor; }
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

se a variavel você ta pegando de outra classe , ou seja 'constante com a variavel'

faz uma funçao pra retornar o nome do cliente

 

public function cliente(){
  return $cliente
}

 

no caso $cliente , poderia ser uma variavel armazenando um resultado vindo do banco ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os dados que preciso usar, as variaveis, ja estao disponiveis na pagina principal vindas do db.

O problema é realmente interpretar o valor da constante como código php e nao como uma string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se puder ver como funciona:

 

http://demo.ipis.net.br/germec

 

No menu Configurações -> Módulos: é possível editar o valor da constante: campo $ImpressaoSaida_Termo

 

No menu Ordens de Serviço, na lita da index, o segundo botão de impressaõ gera um registro de saida e la em baixo (em Termo de Saída) está o valor da constante.

 

Pra entrar:

 

Usuário demo4

Senha: demo4

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta no post com o link, rs.

 

Viu ai? A cfg pode ser editada (o arquivo é recriado com os novos valores apos a edicao e submit do form, este mesmo é Incluido na pagina onde preciso interpretar e imprimir a constante) e pretendo dar a possibilidade ao usuario de incluir outras informações, através de variavéis, no termo de saida, por isso preciso automatizar esta leitura e interpretação do valor da constante como código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, a melhor opção para mim é utilizar printf.

 

<?php
define ( 'TESTE', 'Eu %s declaro ter recebido o veículo acima descriminando de %s nesta data e dou plena e total quitação dos serviços executados assinando abaixo.' );
$nome = 'Nome do cliente';
$cliente = 'Nome da Empresa';
printf ( TESTE, $nome, $cliente);

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.