Php 使用函数不';不能在if-else语句中工作
我试图在Php 使用函数不';不能在if-else语句中工作,php,Php,我试图在Apache和php5+中的if-else语句中使用browscap-php。我使用下面这样的文件作为示例 工作示例: <?php require 'Browscap.php'; use phpbrowscap\Browscap; if ($newdata == "1") { $current_browser = $bc->getBrowser(); } else { } ?> <?php if (
Apache
和php5+
中的if-else语句中使用browscap-php
。我使用下面这样的文件作为示例
工作示例:
<?php
require 'Browscap.php';
use phpbrowscap\Browscap;
if ($newdata == "1") {
$current_browser = $bc->getBrowser();
} else {
}
?>
<?php
if ($newdata == "1") {
require 'Browscap.php';
use phpbrowscap\Browscap;
$current_browser = $bc->getBrowser();
} else {
// do not load anything dealing with browscap
}
?>
不起作用示例:
<?php
require 'Browscap.php';
use phpbrowscap\Browscap;
if ($newdata == "1") {
$current_browser = $bc->getBrowser();
} else {
}
?>
<?php
if ($newdata == "1") {
require 'Browscap.php';
use phpbrowscap\Browscap;
$current_browser = $bc->getBrowser();
} else {
// do not load anything dealing with browscap
}
?>
工作示例工作正常,但第二次我将
use
函数放在if-else语句中,它不工作。我不想在不需要检查该信息时加载browscap
。我该怎么做呢?您可以将use语句置于if之上。use语句不加载任何内容。require语句是加载文件的语句,您可以将其保存在if中。您可以将use语句置于if之上。use语句不加载任何内容。require语句是加载文件的语句,您可以将其保存在if中。引用自:
use关键字必须在文件的最外层作用域中声明
全局范围)或内部命名空间声明。这是因为
导入是在编译时完成的,而不是在运行时,因此不能执行
块作用域
(我的重点)引用:
use关键字必须在文件的最外层作用域中声明
全局范围)或内部命名空间声明。这是因为
导入是在编译时完成的,而不是在运行时,因此不能执行
块作用域
(我的重点)你说的“不起作用”到底是什么意思?@Pekka웃 它会导致
500内部服务器错误
,并且我有错误报告,但它没有显示任何内容。无论如何,您实际上不需要使用phpbrowscap\Browscap
。当您想要实例化该类时,可以只调用完全限定的命名空间。use
不加载anything@AbbyEPHP生成的任何500个错误(与Apache或其他错误相反)都会有一条相关的错误消息,而display\u errors
应该会导致显示该错误。您的确切意思是什么“不行”?@Pekka웃 它会导致500内部服务器错误
,并且我有错误报告,它没有显示任何内容。无论如何,您实际上不需要use phpbrowscap\Browscap
。您可以在想要实例化该类时调用完全限定的命名空间。use
不加载anything@AbbyEPHP生成的任何错误(与Apache或其他原因引起的事情相反)将有一个相关的错误消息,并且display\u errors
应该会导致显示该错误消息。我现在明白了,我只是要使用if-else语句中包含的,然后将use
函数放在文件的外部范围上。谢谢!我现在明白了,我只是要使用if-else语句中包含的,然后使用put使用文件外表面上的功能。谢谢!