On Tue, Mar 10, 2020 at 5:19 PM Côme Chilliet < come.chill...@fusiondirectory.org> wrote:
> Le mardi 10 mars 2020, 15:53:41 CET Nikita Popov a écrit : > > Would __toString() return $token->text? I'm not strictly opposed to this, > > but I'd be hard pressed to think of a situation where I would prefer > > writing (string) $token over $token->text. Generally, the less magic the > > better :) > > My idea was that since tokens are parsed from a string it should be easy > to write a string back with them. > I do not have an obvious usecase but the idea is doing stuff like > > if ($token.is('function')) { > echo "public $token"; > } else { > echo $token; > } > > Am I right to assume that with __toString the same as ->text we’d have > implode('', PhpToken::getAll($code)) == $code ? > > This would allow: > $tokens = PhpToken::getAll($code); > // Modifications on $tokens > $code = implode('', $tokens); > Yes, that would work. It's not much harder without __toString though: $code = implode(array_column($tokens, 'text')); Does anyone else have thoughts on whether PhpToken should implement __toString() or not? Nikita