本文整理汇总了PHP中Symfony\CS\Tokenizer\Token::isEmpty方法的典型用法代码示例。如果您正苦于以下问题:PHP Token::isEmpty方法的具体用法?PHP Token::isEmpty怎么用?PHP Token::isEmpty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\CS\Tokenizer\Token
的用法示例。
在下文中一共展示了Token::isEmpty方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testIsEmpty
public function testIsEmpty()
{
$braceToken = $this->getBraceToken();
$this->assertFalse($braceToken->isEmpty());
$braceToken->setContent('');
$this->assertTrue($braceToken->isEmpty());
$whitespaceToken = new Token(array(T_WHITESPACE, ' '));
$this->assertFalse($whitespaceToken->isEmpty());
$whitespaceToken->setContent('');
$this->assertTrue($whitespaceToken->isEmpty());
$whitespaceToken->override(array(null, ''));
$this->assertTrue($whitespaceToken->isEmpty());
$whitespaceToken = new Token(array(T_WHITESPACE, ' '));
$whitespaceToken->clear();
$this->assertTrue($whitespaceToken->isEmpty());
}
示例2: findSequence
/**
* Find a sequence of meaningful tokens and returns the array of their locations.
*
* @param array $sequence an array of tokens (same format used by getNextTokenOfKind)
* @param int $start start index, defaulting to the start of the file
* @param int $end end index, defaulting to the end of the file
* @param bool|array $caseSensitive global case sensitiveness or an array of booleans, whose keys should match
* the ones used in $others. If any is missing, the default case-sensitive
* comparison is used.
*
* @return array|null an array containing the tokens matching the sequence elements, indexed by their position
*/
public function findSequence(array $sequence, $start = 0, $end = null, $caseSensitive = true)
{
// $end defaults to the end of the collection
if (null === $end) {
$end = count($this) - 1;
}
if (!count($sequence)) {
throw new \InvalidArgumentException('Invalid sequence');
}
// make sure the sequence content is "meaningful"
foreach ($sequence as $key => $token) {
// if not a Token instance already, we convert it to verify the meaningfulness
if (!$token instanceof Token) {
if (is_array($token) && !isset($token[1])) {
// fake some content as it is required by the Token constructor,
// although optional for search purposes
$token[1] = '';
}
$token = new Token($token);
}
if ($token->isWhitespace() || $token->isComment() || $token->isEmpty()) {
throw new \InvalidArgumentException(sprintf('Non-meaningful token at position: %s', $key));
}
}
// remove the first token from the sequence, so we can freely iterate through the sequence after a match to
// the first one is found
$key = key($sequence);
$firstCs = Token::isKeyCaseSensitive($caseSensitive, $key);
$firstToken = $sequence[$key];
unset($sequence[$key]);
// begin searching for the first token in the sequence (start included)
$index = $start - 1;
while (null !== $index && $index <= $end) {
$index = $this->getNextTokenOfKind($index, array($firstToken), $firstCs);
// ensure we found a match and didn't get past the end index
if (null === $index || $index > $end) {
return;
}
// initialise the result array with the current index
$result = array($index => $this[$index]);
// advance cursor to the current position
$currIdx = $index;
// iterate through the remaining tokens in the sequence
foreach ($sequence as $key => $token) {
$currIdx = $this->getNextMeaningfulToken($currIdx);
// ensure we didn't go too far
if (null === $currIdx || $currIdx > $end) {
return;
}
if (!$this[$currIdx]->equals($token, Token::isKeyCaseSensitive($caseSensitive, $key))) {
// not a match, restart the outer loop
continue 2;
}
// append index to the result array
$result[$currIdx] = $this[$currIdx];
}
// do we have a complete match?
// hint: $result is bigger than $sequence since the first token has been removed from the latter
if (count($sequence) < count($result)) {
return $result;
}
}
}
示例3: findSequence
public function findSequence(array $sequence, $start = 0, $end = null, $caseSensitive = true)
{
if (null === $end) {
$end = count($this) - 1;
}
if (!count($sequence)) {
throw new \InvalidArgumentException('Invalid sequence');
}
foreach ($sequence as $key => $token) {
if (!$token instanceof Token) {
if (is_array($token) && !isset($token[1])) {
$token[1] = '';
}
$token = new Token($token);
}
if ($token->isWhitespace() || $token->isComment() || $token->isEmpty()) {
throw new \InvalidArgumentException(sprintf('Non-meaningful token at position: %s', $key));
}
}
$key = key($sequence);
$firstCs = Token::isKeyCaseSensitive($caseSensitive, $key);
$firstToken = $sequence[$key];
unset($sequence[$key]);
$index = $start - 1;
while (null !== $index && $index <= $end) {
$index = $this->getNextTokenOfKind($index, array($firstToken), $firstCs);
if (null === $index || $index > $end) {
return;
}
$result = array($index => $this[$index]);
$currIdx = $index;
foreach ($sequence as $key => $token) {
$currIdx = $this->getNextMeaningfulToken($currIdx);
if (null === $currIdx || $currIdx > $end) {
return;
}
if (!$this[$currIdx]->equals($token, Token::isKeyCaseSensitive($caseSensitive, $key))) {
continue 2;
}
$result[$currIdx] = $this[$currIdx];
}
if (count($sequence) < count($result)) {
return $result;
}
}
}