Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在动态类型语言中何时应使用null?_Php_Javascript_Dynamic - Fatal编程技术网

Php 在动态类型语言中何时应使用null?

Php 在动态类型语言中何时应使用null?,php,javascript,dynamic,Php,Javascript,Dynamic,每当我用动态类型语言编写函数时,我仍然不知道返回什么是最好的方法,以使调用函数时处理错误和保持程序流流畅变得容易 当使用动态类型语言的函数出现问题时,社区认为什么是正确的返回 我的总体想法是: 如果要返回实际值,则如果函数成功执行,则应使用该类型返回数据;如果出现意外情况,则应使用null 引发异常应保留给通用实用程序函数 如果发生错误,则不应返回特定类型的默认值,例如,如果用户需要字符串,则不应在发生错误时返回空字符串 当一个异常发生时(在这个词的意义上),抛出一个异常null类似于“noth

每当我用动态类型语言编写函数时,我仍然不知道返回什么是最好的方法,以使调用函数时处理错误和保持程序流流畅变得容易

当使用动态类型语言的函数出现问题时,社区认为什么是正确的返回

我的总体想法是:

  • 如果要返回实际值,则如果函数成功执行,则应使用该类型返回数据;如果出现意外情况,则应使用null

  • 引发异常应保留给通用实用程序函数

  • 如果发生错误,则不应返回特定类型的默认值,例如,如果用户需要字符串,则不应在发生错误时返回空字符串


  • 当一个异常发生时(在这个词的意义上),抛出一个异常
    null
    类似于“nothing”,这并不意味着必然会发生错误。例如,
    find()
    -方法可能返回
    null
    ,如果它没有找到任何匹配某些给定条件的内容。当您将
    null
    定义为“error”时,您就有了一种神奇的值,就像古老的“神奇数字”,它总是必须被记录下来,例如。

    当异常发生时(在这个词的意义上)抛出异常
    null
    类似于“nothing”,这并不意味着必然会发生错误。例如,
    find()
    -方法可能返回
    null
    ,如果它没有找到任何匹配某些给定条件的内容。当您将
    null
    定义为“error”时,您就有了一种神奇的值,就像旧的“神奇数字”,它总是必须被记录下来,诸如此类。

    我使用自定义异常提出问题。听起来很复杂

    这样做:
    通过引用传递变量以返回数据,并使用bool返回值表示成功/失败

    我使用自定义异常提问。听起来很复杂

    这样做: 通过引用传递变量以返回数据,并使用bool返回值表示成功/失败