Ir para conteúdo

POWERED BY:

Arquivado

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

InterPlanet

[Resolvido] Constante == String

Recommended Posts

Mas neste código já postado, o retorno foi "Cliente $dados" porquê a String está em Aspas Simples.

 

       $dados = 'Cliente';

          class teste{

             const Cliente = 'Cliente $dados';

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

 

Se você fizer:

 

$dados = "Cliente 2";
const Cliente = "Cliente $dados";

O retorno vai ser "Cliente Cliente 2".

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

 

Beleza @Matias Rezende! Show. Esta parace ser a solução mais viavel, estudei printf() e sprintf(). Estou bolando uma forma de identificar cada variavel dentro da string.

 

Parse error: syntax error, unexpected '"'

 

^_^

 

não tem como armazenar uma variavel dentro de uma constante ..

 

o melhor a se fazer foi oque o matias disse mesmo ... printf

 

E isso ai, creio que dentro do possivel está sera melhor saída.

 

Pessoal! Mais uma vez obrigado a todos pela solução de mais um pepino, principalemente a você @Andrey Knupp, pela paciência e empenho em resolver algo teoricamemnte impossível. Abraço a todos e mais uma vez obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é bom .. hehhehe eu tbm nunca cheguei a

 

presisar de botar variavel dentro de constante ..

 

agora ja sei que não da então nen vo ficar agarrado quando tiver que fazer coisa do tipo ...

 

Tanto Ajuda Quanto Aprende ..Eu Tentei Ajudar e acabei aprendendo .. rsrs

 

^_^

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que o tópico já foi resolvido, mas sobre variável em constantes, não vejo nenhum mistério:

 

<?php
$name = 'Diego Haz';

define('WELCOME', 'Seja bem-vindo, $name');

echo WELCOME;
?>

Saída: Seja bem-vindo, $name

 

<?php
$name = 'Diego Haz';

define('WELCOME', "Seja bem-vindo, $name");

echo WELCOME;
?>

Saída: Seja bem-vindo, Diego Haz

 

<?php
$name = 'Diego Haz';

define('WELCOME', 'Seja bem-vindo, ' . $name);

echo WELCOME;
?>

Saída: Seja bem-vindo, Diego Haz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa @Haz!

 

De fato! O pro e que a definicao da constante nao e feita na mesma pagina, :(, dai, precisaria interpretala como se usasse [ Echo "Seja bem-vindo, $name"; ].

Por isso nao funfa, o arquivo com esta constate e outras é incluido com Require(), dai o problema.

 

Vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não e em define , e em const mesmo .. porque certamente ele ta usando o valor por self:: em alguma

funçao ..

É, em constante de classe não dá mesmo.

 

Opa @Haz!

 

De fato! O pro e que a definicao da constante nao e feita na mesma pagina, :(, dai, precisaria interpretala como se usasse [ Echo "Seja bem-vindo, $name"; ].

Por isso nao funfa, o arquivo com esta constate e outras é incluido com Require(), dai o problema.

 

Vlw.

Mas se for um define(), mesmo em arquivos diferentes, o comportamento é o mesmo do echo (exceto pela função, é claro - armazenar/exibir).

Se a variável estiver disponível no escopo, ele enxergará o valor.

 

name.php

<?php
$name = 'Diego Haz';
?>

index.php

<?php
require 'name.php';

define('WELCOME', 'Seja bem-vindo, ' . $name);

echo WELCOME;
?>

Saída: Seja bem-vindo, Diego Haz

 

Tenta usar o echo no mesmo lugar em que você usa o define().

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Mas se for um define(), mesmo em arquivos diferentes, o comportamento é o mesmo do echo (exceto pela função, é claro - armazenar/exibir).

Se a variável estiver disponível no escopo, ele enxergará o valor.

 

name.php

<?php
$name = 'Diego Haz';
?>

index.php

<?php
require 'name.php';

define('WELCOME', 'Seja bem-vindo, ' . $name);

echo WELCOME;
?>

Saída: Seja bem-vindo, Diego Haz

 

Tenta usar o echo no mesmo lugar em que você usa o define().

 

Perfeito @Haz, contudo a situacao e a oposta, pela organizacao do sistema, o include (com a constante) deve obrigatoriamente (por denpendencia deste arquivo em outras partes do sistema) carregado antes de eu ter o valor de $name, assim:

 

Constante:

 

<?php 
define('Nome', 'o nome do cliente é $name');
?>

 

Página:

 

<?php 
include('name.php');

$name = 'fernando';
Echo Nome; // Imprime: 'o nome do cliente é $name'
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, sim. Bem, perceba o seguinte:

<?php
$var = 'test';

echo 'Just a $var'; // Exibe 'Just a $var'
echo "Just a $var"; // Exibe 'Just a test'
?>

Mas isso não resolve o seu caso. A solução mais adequada é o printf() mesmo.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hehe! É isso ai.

Desculpe quanto a usar aspas simples com uma variavel dentro no meu exemplo, sei que so funfa a interpretacao da variavel se for aspas duplas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo Haz .. ele tambem pode usar aspas simples faria tipo uma concatenção como você mostrou

 

 

Por Exemplo

define('var','nome'.$var.'')

 

Mais acho que o mais certo a se fazer ainda sim por uma soluçao mais dificil o printf

^_^

 

 

E Como tambem acho que pra melhor armazenamento de variavel em define no caso seria

 

aspas duplas como você mesmo deu a ideia

 

Abraços

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.