首页 > 解决方案 > 即使设置为全局,PHP 也不能在函数之外使用函数 var

问题描述

这不会与 vars 相呼应

<?php
function myfunc(){
    function gettime(){
        $date = date('d-m-y h:i:s');
        global $date;
    }
    function getURL(){
        $url = $_SERVER['REQUEST_URI'];
        global $url;
    }
    function getrequest(){
        $method = $_SERVER['REQUEST_METHOD'];
        $request = explode("/", substr(@$_SERVER['PATH_INFO'], 1));
        
        switch ($method) {
          case 'PUT': 
            $requestmethod = 'GET';
            break;
          case 'POST':
            $requestmethod = 'POST';
            break;
          case 'GET': 
            $requestmethod = 'GET';
            break;
          default:
          $requestmethod = 'unkown';
            break;
        }
        global $requestmethod;
    }
}
myfunc();
echo $requestmethod.$url.$date;

我怎样才能$date(和所有其他人)了解echo他们的价值观?

我将它们设置为Global,即使我放入echo函数内部,它仍然不起作用。

标签: php

解决方案


global必须是第一个,否则在调用时它会覆盖。

例如:

function gettime(){
    global $date;
    $date = date('d-m-y h:i:s');
}

比较https://3v4l.org/M8P7Thttps://3v4l.org/irRHf

如另一个答案所述,尽管您仍然需要调用这些函数。


推荐阅读