我正在使用PHP类连接到数据库。我无法解决问题-请帮我解决这个问题。我有一个函数:functiongetCampus($cm_id)//returnscampusname{$this->query="selectcm_namefromcampuswherecm_id=".$cm_id.";";$rd=$this->executeQuery();@$data=$rd->fetch_assoc();}当我从@$data中删除@时,它不起作用。请帮帮我:解释一下替代方法是什么。谢谢。 最佳答案 @是错误抑制运算符。使用它作为代码行的前缀将
我正在尝试自动化我的测试。作为冒烟测试,我想在继续实际的单元测试之前用PHPMD检查我的PHP代码。听起来很明智吧?当我的PHP文件中出现fatalerror时,PHPMD似乎会崩溃。对于测试,我在函数定义中添加了额外的赞誉,如下所示:functionfoo(){{//Stuff}如果我期望1退出代码,PHPMD似乎完全崩溃,而是返回0退出代码。使我的自动化脚本无用。有没有办法抑制这些错误并返回预期的退出代码?对于PHPUnit,--process-isolation选项解决了这个问题,但我似乎无法为PHPMD找到这样的选项。相关自动化测试代码#!/usr/bin/php
是否有一个选项可以抑制在Phing中执行目标时显示的默认输出。我有一个目标对每个目录进行简单检查,输出根本没有用,但打印大量消息告诉我的目标被调用:>my-target:[foreach]CallingBuildfile'build.xml'withtarget'my-target'.有没有办法禁用该输出? 最佳答案 对于特定目标,您不能。对于整个执行,您可以指定静默参数:bin/phing-silentdb.wanup.deploy添加:如果你想查看很少的echo,那么你应该在安静模式下执行它:bin/phing-quiet并将您
我想通过exec()运行多个命令,但我不想在屏幕上显示任何输出。但是,我确实希望保留输出,以便在脚本运行时控制冗长程度。这是我的类(class):问题是,大多数应用程序都会将大量不相关的内容放入stderr,我似乎无法阻止这些内容。例如,这是通过它运行gitclone的输出:Cloninginto'/tmp/directory'...remote:Countingobjects:649,done.remote:Compressingobjects:100%(119/119),done.remote:Total649(delta64),reused0(delta0),pack-reuse
tl;dr-在非常严格的环境中工作时,是否有一种有效的方法来管理PHP的错误报告级别,给定某些进程不那么严格的级别变得更容易?好的;首先,我不相信“错误抑制”是一种解决方案。我(有理由确定我)从未使用过@错误抑制运算符,并且无意这样做。我利用set_error_handler()和ErrorException(或一些派生的)并在error_reporting(-1)(面向futureE_ALL|E_STRICT)现在,我不想改变这些习惯,因为我发现它们是一个很好的实践(还有;如果有人有进一步改进我的开发/生产环境设置/实践的建议,我会洗耳恭听)但是,当涉及到View生成时,这可能会变得
我当前的php.ini文件设置为报告除弃用和严格标准之外的所有错误,如下所示:error_reporting=E_ALL&~E_STRICT&~E_DEPRECATED使用此设置的原因是我们迫切需要在托管我们网站的linux服务器上执行PHP升级;问题是弃用的功能和严格的标准建议将很快填满170多个网站的错误日志文件。错误主要是由于函数未声明为静态等小问题造成的。最终我们将访问所有站点并修复这些问题,但与此同时我们需要抑制错误。我在本地测试环境(运行我们希望升级到5.4.3的PHP版本)中遇到的问题是错误仍然显示,之前打印了以下内容:SCREAM:Errorsuppressionign
有没有办法在运行composerinstall时禁用“模棱两可的类解析”警告?我使用的包在不同文件夹中具有相同名称(和命名空间)的类。我知道thisbug,但这并不是因为这些类在供应商中实际上是两次。我对此无能为力。我也知道--no-autoloader标志当然不会抛出警告,只是因为它跳过了自动加载器生成。 最佳答案 与其从vendor目录中删除文件(应该避免),不如将具有不明确类的文件/目录添加到exclude-from-classmapcomposer.json中的部分:"autoload":{..."exclude-from-
我有一些可能已定义或undefinedvariable($isLoggedInbool值),我正在尝试清除错误消息。我想知道是否有任何理由不应该使用错误抑制运算符:if(@$isLoggedIn)或者如果我应该先检查变量是否存在:if(isset($isLoggedIn)and$isLoggedIn)在生产环境中,这两种方法有什么特别的缺点/好处吗?这两个语句的功能是相同的,并且不会因为这个var未定义而导致问题。不过,不应将其记录为错误。 最佳答案 根据我的经验,您永远不应该在个人层面上抑制错误。在您的生产环境中,将错误报告设置为
我一直很高兴在我的PHP开发设置中使用错误抑制运算符。但是最近遇到了这样的通知:Notice:Uninitializedstringoffset:0inC:\websites\xxx\htdocs\includes\myscript.phponline35第35行:$file_name=@$File['file_name'];我打开了display_errors,并将error_reporting设置为6143(E_ALL)。我错过了什么吗?错误不应该被抑制吗?编辑:在原始脚本中测试:$a=array();$b=@$a['f5'];抑制了错误。所以我认为我们正在以某种方式更改error
我有以下测试代码:FileSystemfs=FileSystems.getDefault();Pathconf=fs.getPath(".");WatchKeykey=null;try{WatchServicewatcher=fs.newWatchService();conf.register(watcher,StandardWatchEventKinds.ENTRY_MODIFY);while(true){key=watcher.take();//waitsfor(WatchEventevent:key.pollEvents()){WatchEvent.Kindkind=event.