jjzjj

php - php中的回调函数和异常

coder 2024-04-20 原文

目前我正在阅读 php's manual about callback functions并发现有趣的注释:

Callbacks registered with functions such as call_user_func() and call_user_func_array() will not be called if there is an uncaught exception thrown in a previous callback.

很明显,如果出现未捕获的异常,脚本运行将被中断。那么,为什么 php 手册的作者还要写关于 call_user_func 的内容呢?还是我误解了声明?

最佳答案

在我看来,这比文档的一部分更像是一个提醒。所有未捕获的异常在 php 中都是致命的,除非他们谈论 call_user_func() 很无聊,即使你设置了一个 handler (with set_exception_handler)而不是一个 catch,这听起来像律师会做的事情......

关于php - php中的回调函数和异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13000242/

有关php - php中的回调函数和异常的更多相关文章

  1. php - HTTP PUT 请求 - 进度条实现 - 2

    我发现HTTPPUT请求最适合上传非常大的文件(1GB或更多)。该解决方案运行良好,我可以将我选择的任何文件上传到服务器。但是,我无法监控上传进度。我已经实现了onprogress回调,但是这个回调只会在文件通过PUT上传后被调用一次。我的JavaScript代码:varreq=createRequest();req.open("PUT","PHP/upload_file.php?folder="+aUploadedFile.upload_folder+"&master_folder="+settings.strServerSid

  2. 具有单个元素的 PHP Foreach 循环 - 2

    我有一个函数可以解析嵌套数组中的“条目”:$data=Array([date]=>'date'[entry]=>Array([0]=>Array([Title]=>'title0'[Price]=>'price0')[1]=>Array([Title]=>'title1'[Price]=>'price1')))如果有多个条目,使用foreach($data['entry']as$entry){进行循环会非常有效。但是,我只收到一个条目:$data=Array(

  3. php - foreach 循环后数组被覆盖 - 2

    我正在尝试将包含元素的对象从sql结果集中推送到数组中。我的代码是这样的:$data=array();$sql="SELECTid,type,name,usernameFROMusers";foreach($conn->query($sql)as$row){$this->set_id($row['id']);$this->set_type($row['type']);$this->set_username($row['username']);$this->set_password($row[&

  4. php - 如何在运行 simplexml_load_file() 之前检查 XML 文件是否良好 - 2

    我使用PHP的simplexml_load_file()函数调用一个API,该API会根据我发送的时间戳返回更改后的结果。因此API将仅返回self的时间戳以来发生变化的结果。我遇到的问题是,如果时间戳太快并且API没有返回结果,那么它不会返回正确的XML文件,而只会返回空白页。这会导致simplexml_load_file出现各种问题这是我可以运行的简单测试...$xml='http://api.rescuegroups.org/rest/?key=CZivWWGD&type=orgs&limit=300&updatedAfter=1361941202

  5. php - 如何屏蔽用户? - 2

    这个问题在这里已经有了答案:Detectinga"unique"anonymoususer(4个答案)definitivewaytogetuseripaddressphp[duplicate](1个回答)关闭9年前。我想创建一个php脚本来阻止用户而不是整个网络(调制解调器)。我知道我可以从调制解调器获取IP,但我的服务器如何区分调制解调器后面的用户?有没有可能的解决方案?

  6. php - set_time_limit 不起作用 - 2

    我在php中有一个bigint类,用于计算大数。它运作良好,除了时间限制。我设置了时间限制set_time_limit(900);在我的bigint.php文件中,它在本地主机上工作。但是在我的虚拟主机中,当我尝试计算999^999时,它会产生错误Fatalerror:Maximumexecutiontimeof10secondsexceededin/home/vhosts/mysite.com/http/bigint/bigint.phponline156这是我的代码:publicfunctionMultiply_Digit($digit){//classfunctionofbigi

  7. php - 在 PHP 中使用位 - 2

    假设我想在PHP中存储8个单词的序列,并且我不想使用压缩。因为只有8个单词,我可以为每个单词分配一个二进制值,然后将这些二进制值而不是ascii单词存储在一个文件中。可能的二进制值是:000,001,010,011,100,101,110,111这会更有效地解析,因为:(1)现在每个单词的大小都相同,并且(2)它占用的空间少得多。我的问题是:我如何在PHP中执行此操作?我怎样才能为某物分配一个二进制值,然后将其写入文件(按照我想要的方式写入位),然后再次读回?我想这样做的原因是为了创建一个高效的索引系统。 最佳答案 首先,如果您想压

  8. php - 网站如何在不重新加载页面的情况下检查登录凭据? - 2

    一些网站,例如Yahoo和Google,使用Ajax检查用户名/密码是否错误。显然必须有服务器端身份验证,因为任何人都可以更改本地JavaScript并欺骗它认为用户名/密码是正确的。我想知道这是如何有效地完成的,因为服务器不会两次检查相同的用户名/密码吗?考虑以下用户登录网站的场景:用户来到登录页面用户输入用户名/密码并点击提交如果输入的用户名/密码正确,服务器通过Ajax与客户端通信服务器回复说用户名/密码是否正确——在这个例子中是<form>已提交,间歇性页面通过POST获取输入的值并在服务器端再次处理它们以验证用户名/密码是否正确以及是否在session中设置了变量

  9. php - 使用 xmlns :xlink attribute in a node 创建 XML - 2

    我正在尝试添加生成这样的输出:<mets....xmlns:xlink="http://www.w3.org/1999/xlink"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.loc.gov/METS/http://www.loc.gov/standards/mets/mets.xsd">我可以很好地生成所有内容,但无法添加xmlns:xlink属性。我得到的最接近的是:$this->xml=new

  10. php - Ajax 不在循环中工作 - 2

    这个问题在这里已经有了答案:JavaScriptclosureinsideloops–simplepracticalexample(44个答案)关闭9年前。我想在一个循环中执行Ajax来逐个获取数据。我在我的javascript函数中做了类似的事情。varresultType=$("input[name='resultType']:checked").val();varfinalResult="";varloadingMessage="<imgsrc=\"./results/loader.gif\"alt=\

随机推荐

  1. php - HTTP PUT 请求 - 进度条实现 - 2

    我发现HTTPPUT请求最适合上传非常大的文件(1GB或更多)。该解决方案运行良好,我可以将我选择的任何文件上传到服务器。但是,我无法监控上传进度。我已经实现了onprogress回调,但是这个回调只会在文件通过PUT上传后被调用一次。我的JavaScript代码:varreq=createRequest();req.open("PUT","PHP/upload_file.php?folder="+aUploadedFile.upload_folder+"&master_folder="+settings.strServerSid

  2. 具有单个元素的 PHP Foreach 循环 - 2

    我有一个函数可以解析嵌套数组中的“条目”:$data=Array([date]=>'date'[entry]=>Array([0]=>Array([Title]=>'title0'[Price]=>'price0')[1]=>Array([Title]=>'title1'[Price]=>'price1')))如果有多个条目,使用foreach($data['entry']as$entry){进行循环会非常有效。但是,我只收到一个条目:$data=Array(

  3. php - foreach 循环后数组被覆盖 - 2

    我正在尝试将包含元素的对象从sql结果集中推送到数组中。我的代码是这样的:$data=array();$sql="SELECTid,type,name,usernameFROMusers";foreach($conn->query($sql)as$row){$this->set_id($row['id']);$this->set_type($row['type']);$this->set_username($row['username']);$this->set_password($row[&

  4. php - 如何在运行 simplexml_load_file() 之前检查 XML 文件是否良好 - 2

    我使用PHP的simplexml_load_file()函数调用一个API,该API会根据我发送的时间戳返回更改后的结果。因此API将仅返回self的时间戳以来发生变化的结果。我遇到的问题是,如果时间戳太快并且API没有返回结果,那么它不会返回正确的XML文件,而只会返回空白页。这会导致simplexml_load_file出现各种问题这是我可以运行的简单测试...$xml='http://api.rescuegroups.org/rest/?key=CZivWWGD&type=orgs&limit=300&updatedAfter=1361941202

  5. php - 如何屏蔽用户? - 2

    这个问题在这里已经有了答案:Detectinga"unique"anonymoususer(4个答案)definitivewaytogetuseripaddressphp[duplicate](1个回答)关闭9年前。我想创建一个php脚本来阻止用户而不是整个网络(调制解调器)。我知道我可以从调制解调器获取IP,但我的服务器如何区分调制解调器后面的用户?有没有可能的解决方案?

  6. php - set_time_limit 不起作用 - 2

    我在php中有一个bigint类,用于计算大数。它运作良好,除了时间限制。我设置了时间限制set_time_limit(900);在我的bigint.php文件中,它在本地主机上工作。但是在我的虚拟主机中,当我尝试计算999^999时,它会产生错误Fatalerror:Maximumexecutiontimeof10secondsexceededin/home/vhosts/mysite.com/http/bigint/bigint.phponline156这是我的代码:publicfunctionMultiply_Digit($digit){//classfunctionofbigi

  7. php - 在 PHP 中使用位 - 2

    假设我想在PHP中存储8个单词的序列,并且我不想使用压缩。因为只有8个单词,我可以为每个单词分配一个二进制值,然后将这些二进制值而不是ascii单词存储在一个文件中。可能的二进制值是:000,001,010,011,100,101,110,111这会更有效地解析,因为:(1)现在每个单词的大小都相同,并且(2)它占用的空间少得多。我的问题是:我如何在PHP中执行此操作?我怎样才能为某物分配一个二进制值,然后将其写入文件(按照我想要的方式写入位),然后再次读回?我想这样做的原因是为了创建一个高效的索引系统。 最佳答案 首先,如果您想压

  8. php - 网站如何在不重新加载页面的情况下检查登录凭据? - 2

    一些网站,例如Yahoo和Google,使用Ajax检查用户名/密码是否错误。显然必须有服务器端身份验证,因为任何人都可以更改本地JavaScript并欺骗它认为用户名/密码是正确的。我想知道这是如何有效地完成的,因为服务器不会两次检查相同的用户名/密码吗?考虑以下用户登录网站的场景:用户来到登录页面用户输入用户名/密码并点击提交如果输入的用户名/密码正确,服务器通过Ajax与客户端通信服务器回复说用户名/密码是否正确——在这个例子中是<form>已提交,间歇性页面通过POST获取输入的值并在服务器端再次处理它们以验证用户名/密码是否正确以及是否在session中设置了变量

  9. php - 使用 xmlns :xlink attribute in a node 创建 XML - 2

    我正在尝试添加生成这样的输出:<mets....xmlns:xlink="http://www.w3.org/1999/xlink"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.loc.gov/METS/http://www.loc.gov/standards/mets/mets.xsd">我可以很好地生成所有内容,但无法添加xmlns:xlink属性。我得到的最接近的是:$this->xml=new

  10. php - Ajax 不在循环中工作 - 2

    这个问题在这里已经有了答案:JavaScriptclosureinsideloops–simplepracticalexample(44个答案)关闭9年前。我想在一个循环中执行Ajax来逐个获取数据。我在我的javascript函数中做了类似的事情。varresultType=$("input[name='resultType']:checked").val();varfinalResult="";varloadingMessage="<imgsrc=\"./results/loader.gif\"alt=\