private function isBooleanValue(PHP_Depend_Code_Value $value = null) { return $value && $value->isValueAvailable() && ($value->getValue() === true || $value->getValue() === false); }
/** * This method will parse a static default value as it is used for a * parameter, property or constant declaration. * * @return PHP_Depend_Code_Value * @since 0.9.5 */ private function _parseStaticValue() { $defaultValue = new PHP_Depend_Code_Value(); $this->consumeComments(); // By default all parameters positive signed $signed = 1; $tokenType = $this->tokenizer->peek(); while ($tokenType !== self::T_EOF) { switch ($tokenType) { case self::T_COMMA: case self::T_SEMICOLON: case self::T_PARENTHESIS_CLOSE: if ($defaultValue->isValueAvailable() === true) { return $defaultValue; } throw new PHP_Depend_Parser_MissingValueException($this->tokenizer); case self::T_NULL: $token = $this->consumeToken(self::T_NULL); $defaultValue->setValue(null); break; case self::T_TRUE: $token = $this->consumeToken(self::T_TRUE); $defaultValue->setValue(true); break; case self::T_FALSE: $token = $this->consumeToken(self::T_FALSE); $defaultValue->setValue(false); break; case self::T_LNUMBER: $token = $this->consumeToken(self::T_LNUMBER); $defaultValue->setValue($signed * (int) $token->image); break; case self::T_DNUMBER: $token = $this->consumeToken(self::T_DNUMBER); $defaultValue->setValue($signed * (double) $token->image); break; case self::T_CONSTANT_ENCAPSED_STRING: $token = $this->consumeToken(self::T_CONSTANT_ENCAPSED_STRING); $defaultValue->setValue(substr($token->image, 1, -1)); break; case self::T_DOUBLE_COLON: $this->consumeToken(self::T_DOUBLE_COLON); break; case self::T_PLUS: $this->consumeToken(self::T_PLUS); break; case self::T_MINUS: $this->consumeToken(self::T_MINUS); $signed *= -1; break; case self::T_DOUBLE_QUOTE: $defaultValue->setValue($this->_parseStringSequence($tokenType)); break; case self::T_DIR: case self::T_FILE: case self::T_LINE: case self::T_SELF: case self::T_NS_C: case self::T_FUNC_C: case self::T_PARENT: case self::T_STRING: case self::T_STATIC: case self::T_CLASS_C: case self::T_METHOD_C: case self::T_BACKSLASH: // There is a default value but we don't handle it at the moment. $defaultValue->setValue(null); $this->consumeToken($tokenType); break; case self::T_START_HEREDOC: $defaultValue->setValue($this->parseHeredoc()->getChild(0)->getImage()); break; default: throw new PHP_Depend_Parser_UnexpectedTokenException($this->tokenizer->next(), $this->tokenizer->getSourceFile()); } $this->consumeComments(); $tokenType = $this->tokenizer->peek(); } // We should never reach this, so throw an exception throw new PHP_Depend_Parser_TokenStreamEndException($this->tokenizer); }
/** * testIsValueAvailableReturnsTrueForNullValue * * @return void */ public function testIsValueAvailableReturnsTrueForNullValue() { $value = new PHP_Depend_Code_Value(); $value->setValue(null); self::assertTrue($value->isValueAvailable()); }