Olá, estou estudando algumas coisas para um projeto que começarei em breve e estou com uma dificuldade, que na verdade não passa de frescura, mas seria legal se eu conseguisse.
Esse sistema trabalhará com muita manipulação de dados, independente dos tipos. Ai eu tava pensando em fazer algo menos PHP, para ficar mais bonito, amigavel...
A minha ideia seria criar uma classe para cada tipo(string, int, ..) e trabalhar com elas assim:
echo new String('myString')->isMail()
O problema é que o PHP exige que depois de instanciar, eu não chame nenhum metodo do objeto, apenas termine a linha.
Para contornar isso, criei uma função com o mesmo nome da classe e nessa função eu instancio a classe, no modo de trabalhar ficou quase igual:
echo String('myString')->isMail()
Isso já até me serve, mas agora estou cismado nisso e quero por todo custo fazer da forma que eu tinha pensado no começo, logo, queria saber de vocês: é possivel fazer isso?
Caso eu não tenha sido claro, aqui está um exemplo:
<?php
class String
{
protected $_str;
public function __construct($str)
{
$this->_str = (string) $str;
}
public function get()
{
return $this->_str;
}
}
function String($str)
{
return new String($str);
}
/*
* O que eu quero é utilizar assim:
* echo new String('teste')->get();
*/
echo String('teste')->get();
?>
Pergunta
vini_loock
Olá, estou estudando algumas coisas para um projeto que começarei em breve e estou com uma dificuldade, que na verdade não passa de frescura, mas seria legal se eu conseguisse.
Esse sistema trabalhará com muita manipulação de dados, independente dos tipos. Ai eu tava pensando em fazer algo menos PHP, para ficar mais bonito, amigavel...
A minha ideia seria criar uma classe para cada tipo(string, int, ..) e trabalhar com elas assim:
O problema é que o PHP exige que depois de instanciar, eu não chame nenhum metodo do objeto, apenas termine a linha. Para contornar isso, criei uma função com o mesmo nome da classe e nessa função eu instancio a classe, no modo de trabalhar ficou quase igual: Isso já até me serve, mas agora estou cismado nisso e quero por todo custo fazer da forma que eu tinha pensado no começo, logo, queria saber de vocês: é possivel fazer isso? Caso eu não tenha sido claro, aqui está um exemplo:At, Vinicius
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
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.