PHP代码不能用作使用IP地址查找位置的函数

PHP代码不能用作使用IP地址查找位置的函数,php,Php,我正在使用下面的代码查找IP地址的位置。这是web服务提供商的API。下面的代码工作正常。然而,当我试图使它作为一个函数工作时,它不起作用。当我检查工作代码的语法时,它会通过。当我检查包含函数调用的代码时,语法检查器会出现以下错误: PHP语法检查:解析错误:语法错误,第6行代码中出现意外的“use”(T_use) 非常感谢您帮助解决这个问题 谢谢, 梅纳赫姆 这是工作代码。在下面的代码中,您将找到该函数的代码以及对该函数的调用。带有该函数的代码不起作用 <?php require_on

我正在使用下面的代码查找IP地址的位置。这是web服务提供商的API。下面的代码工作正常。然而,当我试图使它作为一个函数工作时,它不起作用。当我检查工作代码的语法时,它会通过。当我检查包含函数调用的代码时,语法检查器会出现以下错误:

PHP语法检查:解析错误:语法错误,第6行代码中出现意外的“use”(T_use)

非常感谢您帮助解决这个问题

谢谢, 梅纳赫姆

这是工作代码。在下面的代码中,您将找到该函数的代码以及对该函数的调用。带有该函数的代码不起作用

<?php

require_once 'vendor/autoload.php';
use GeoIp2\WebService\Client;


// This creates a Client object that can be reused across requests.
// Replace "42" with your user ID and "license_key" with your license
// key.

$client = new Client(42, 'jijlki765');

// Replace "city" with the method corresponding to the web service that
// you are using, e.g., "country", "insights".

$ipAddress = $_SERVER['REMOTE_ADDR'];

$record = $client->city($ipAddress);

$country = $record->country->name;
$region =  $record->mostSpecificSubdivision->name;
$city = $record->city->name;

echo $country;
echo "</p>\n";
echo $region;
echo "</p>\n";
echo $city;
echo "</p>\n";
?>

使用函数编码并调用不起作用的函数。功能代码与前一代码相同

<?php

function find_location () {

require_once 'vendor/autoload.php';
use GeoIp2\WebService\Client;


// This creates a Client object that can be reused across requests.
// Replace "42" with your user ID and "license_key" with your license
// key.

$client = new Client(42, 'jijlki765');

// Replace "city" with the method corresponding to the web service that
// you are using, e.g., "country", "insights".

$ipAddress = $_SERVER['REMOTE_ADDR'];

$record = $client->city($ipAddress);

$country = $record->country->name;
$region =  $record->mostSpecificSubdivision->name;
$city = $record->city->name;

echo $country;
echo "</p>\n";
echo $region;
echo "</p>\n";
echo $city;
echo "</p>\n";
}

find_location ();

?>

错误表明您错误地使用了USE语句


在功能之外使用它。

Use
require\u移动一次
到功能块之外

这清楚地表明没有阅读文档。亲爱的Ismael,感谢您的鼓励。对不起,这是真的。请看这里:引用:
“必须在文件的最外层范围(全局范围)或命名空间声明内部声明use关键字。”
。函数是一个新的作用域,不是名称空间声明。我花了2分钟。我所做的只是谷歌“php使用关键字”,打开文档并阅读。我明白了。然而,我是PHP新手,我没有编写API。我很高兴别人帮助了我。现在很好用。如果我花了2分钟找到答案,我会通过电子邮件给你答案,不会因为你没有阅读文档而公开羞辱你。话虽如此,我还是要感谢你第二次回复我,并解释了我犯的错误。如果我的信息出现错误,我很抱歉。但是,如果您花多一点时间阅读文档,就不会有这个问题。我基本上不知道java或C++,但是我可以通过阅读官方文档来编写一个体面的程序(没有最佳实践)。这个问题清楚地表明缺乏这种阅读。如果你认为我在公开羞辱你,当你用鼠标悬停评论时,你会看到一个标志。只需点击它并选择合适的原因。Vishai,非常感谢!它起作用了。我对PHP比较陌生。谢谢你的帮助。我做了改变,效果很好!