即使设置为全局,PHP也不能在函数之外使用函数var
这不符合vars的要求即使设置为全局,PHP也不能在函数之外使用函数var,php,Php,这不符合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(){
<?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;
您是声明
函数,但您不是调用
函数
试试这个:
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;
}
function myfunc(){
gettime(); // You invoke the function gettime, so it get executed
getURL(); // You invoke the function getURL, so it get executed
getrequest(); // You invoke the function getrequest, so it get executed
}
myfunc();
echo $requestmethod.$url.$date;
global
必须是第一个,否则调用时会覆盖它
例如:
function gettime(){
global $date;
$date = date('d-m-y h:i:s');
}
比照
如另一个答案所述,尽管您仍然需要调用函数。您可以这样得到它:
将“全局”替换为“返回”
而不是使用myfunc()代码>初始化myFunc()并将其存储在变量中,如下所示
$myFunc = myfunc();
现在可以调用其中的所有变量和方法
例如:
echo $myFunc.gettime();
当我运行它的时候,我仍然一无所获,我的代码还有其他问题吗?我所说的什么都没有,echo返回什么都没有。你到底想实现什么?到目前为止,您尝试了什么来解决您的问题?你被困在哪里?已经从下面的每个人那里解决了(解决了这两个问题)经过测试,效果良好
echo $myFunc.gettime();