Server IP : 127.0.0.2 / Your IP : 18.217.0.242 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/vendor/psy/psysh/src/Psy/Reflection/ |
Upload File : |
<?php /* * This file is part of Psy Shell. * * (c) 2012-2017 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Psy\Reflection; /** * A fake ReflectionFunction but for language constructs. */ class ReflectionLanguageConstruct extends \ReflectionFunctionAbstract { public $keyword; /** * Language construct parameter definitions. */ private static $languageConstructs = array( 'isset' => array( 'var' => array(), '...' => array( 'isOptional' => true, 'defaultValue' => null, ), ), 'unset' => array( 'var' => array(), '...' => array( 'isOptional' => true, 'defaultValue' => null, ), ), 'empty' => array( 'var' => array(), ), 'echo' => array( 'arg1' => array(), '...' => array( 'isOptional' => true, 'defaultValue' => null, ), ), 'print' => array( 'arg' => array(), ), 'die' => array( 'status' => array( 'isOptional' => true, 'defaultValue' => 0, ), ), 'exit' => array( 'status' => array( 'isOptional' => true, 'defaultValue' => 0, ), ), ); /** * Construct a ReflectionLanguageConstruct object. * * @param string $name */ public function __construct($keyword) { if (self::isLanguageConstruct($keyword)) { throw new \InvalidArgumentException('Unknown language construct: ' . $keyword); } $this->keyword = $keyword; } /** * This can't (and shouldn't) do anything :). * * @throws \RuntimeException */ public static function export($name) { throw new \RuntimeException('Not yet implemented because it\'s unclear what I should do here :)'); } /** * Get language construct name. * * @return string */ public function getName() { return $this->keyword; } /** * None of these return references. * * @return bool */ public function returnsReference() { return false; } /** * Get language construct params. * * @return */ public function getParameters() { $params = array(); foreach (self::$languageConstructs[$this->keyword] as $parameter => $opts) { array_push($params, new ReflectionLanguageConstructParameter($this->keyword, $parameter, $opts)); } return $params; } /** * To string. * * @return string */ public function __toString() { return $this->getName(); } /** * Check whether keyword is a (known) language construct. * * @param $keyword * * @return bool */ public static function isLanguageConstruct($keyword) { return array_key_exists($keyword, self::$languageConstructs); } }