From 40582d401204e51008800d188a1953c9a3384f95 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Wed, 17 Aug 2016 14:27:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BRequest=E7=B1=BB=20=E9=81=BF?= =?UTF-8?q?=E5=85=8D=E6=95=B0=E6=8D=AE=E6=89=B9=E9=87=8F=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=20=E5=BD=B1=E5=93=8D=E5=8E=9F?= =?UTF-8?q?=E5=A7=8B=E6=95=B0=E6=8D=AE=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Request.php | 56 +++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/library/think/Request.php b/library/think/Request.php index 80546d89..4d98c1e7 100644 --- a/library/think/Request.php +++ b/library/think/Request.php @@ -655,11 +655,12 @@ class Request */ public function get($name = '', $default = null, $filter = null) { + if (empty($this->get)) { + $this->get = $_GET; + } if (is_array($name)) { $this->param = []; return $this->get = array_merge($this->get, $name); - } elseif (empty($this->get)) { - $this->get = $_GET; } return $this->input($this->get, $name, $default, $filter); } @@ -674,11 +675,12 @@ class Request */ public function post($name = '', $default = null, $filter = null) { + if (empty($this->post)) { + $this->post = $_POST; + } if (is_array($name)) { $this->param = []; return $this->post = array_merge($this->post, $name); - } elseif (empty($this->post)) { - $this->post = $_POST; } return $this->input($this->post, $name, $default, $filter); } @@ -693,10 +695,6 @@ class Request */ public function put($name = '', $default = null, $filter = null) { - if (is_array($name)) { - $this->param = []; - return $this->put = is_null($this->put) ? $name : array_merge($this->put, $name); - } if (is_null($this->put)) { $content = file_get_contents('php://input'); if (strpos($content, '":')) { @@ -705,6 +703,11 @@ class Request parse_str($content, $this->put); } } + if (is_array($name)) { + $this->param = []; + return $this->put = is_null($this->put) ? $name : array_merge($this->put, $name); + } + return $this->input($this->put, $name, $default, $filter); } @@ -743,11 +746,12 @@ class Request */ public function request($name = '', $default = null, $filter = null) { + if (empty($this->request)) { + $this->request = $_REQUEST; + } if (is_array($name)) { $this->param = []; return $this->request = array_merge($this->request, $name); - } elseif (empty($this->request)) { - $this->request = $_REQUEST; } return $this->input($this->request ?: $_REQUEST, $name, $default, $filter); } @@ -762,10 +766,11 @@ class Request */ public function session($name = '', $default = null, $filter = null) { + if (empty($this->session)) { + $this->session = Session::get(); + } if (is_array($name)) { return $this->session = array_merge($this->session, $name); - } elseif (empty($this->session)) { - $this->session = Session::get(); } return $this->input($this->session, $name, $default, $filter); } @@ -780,10 +785,11 @@ class Request */ public function cookie($name = '', $default = null, $filter = null) { + if (empty($this->cookie)) { + $this->cookie = $_COOKIE; + } if (is_array($name)) { return $this->cookie = array_merge($this->cookie, $name); - } elseif (empty($this->cookie)) { - $this->cookie = $_COOKIE; } return $this->input($this->cookie, $name, $default, $filter); } @@ -798,10 +804,11 @@ class Request */ public function server($name = '', $default = null, $filter = null) { + if (empty($this->server)) { + $this->server = $_SERVER; + } if (is_array($name)) { return $this->server = array_merge($this->server, $name); - } elseif (empty($this->server)) { - $this->server = $_SERVER; } return $this->input($this->server, false === $name ? false : strtoupper($name), $default, $filter); } @@ -814,10 +821,11 @@ class Request */ public function file($name = '') { + if (empty($this->file)) { + $this->file = isset($_FILES) ? $_FILES : []; + } if (is_array($name)) { return $this->file = array_merge($this->file, $name); - } elseif (empty($this->file)) { - $this->file = isset($_FILES) ? $_FILES : []; } $files = $this->file; if (!empty($files)) { @@ -874,10 +882,11 @@ class Request */ public function env($name = '', $default = null, $filter = null) { + if (empty($this->env)) { + $this->env = $_ENV; + } if (is_array($name)) { return $this->env = array_merge($this->env, $name); - } elseif (empty($this->env)) { - $this->env = $_ENV; } return $this->input($this->env, false === $name ? false : strtoupper($name), $default, $filter); } @@ -891,9 +900,7 @@ class Request */ public function header($name = '', $default = null) { - if (is_array($name)) { - return $this->header = array_merge($this->header, $name); - } elseif (empty($this->header)) { + if (empty($this->header)) { $header = []; $server = $this->server ?: $_SERVER; foreach ($server as $key => $val) { @@ -910,6 +917,9 @@ class Request } $this->header = array_change_key_case($header); } + if (is_array($name)) { + return $this->header = array_merge($this->header, $name); + } if ('' === $name) { return $this->header; }