当前位置: 首页 > 面试题库 >

功能内的功能。

华景焕
2023-03-14
问题内容

这段代码的结果为56。

function x ($y) {
    function y ($z) {
        return ($z*2);
    }

    return($y+3);
}

$y = 4;
$y = x($y)*y($y);
echo $y;

知道里面发生了什么吗?我很困惑。


问题答案:

X返回(值+3),而Y返回(值* 2)

给定值为4,这表示(4+3) * (4*2) = 7 * 8 = 56

尽管函数不受范围限制(这意味着您可以安全地“嵌套”函数定义),但是此特定示例容易出错:

1)您不能在调用 y()之前先调用x(),因为函数只有执行一次y()才真正定义x()

2)调用x()两次将导致PHP重新声明function y(),从而导致致命错误:

致命错误:无法重新声明y()

两者的解决方案是拆分代码,以便两个函数彼此独立地声明:

function x ($y) 
{
  return($y+3);
}

function y ($z)
{
  return ($z*2);
}

这也更具可读性。



 类似资料:
  • 问题内容: 我的问题是: 据我所知,这取决于如何使用,即用作构造函数或函数。可什么是在不同的情况下? 问题答案: 的关键字是指功能所属的对象,或对象如果函数不属于任何对象。 在OOP代码中使用它来引用该函数所属的类/对象,例如: 这提醒: 您可以使用或函数操纵引用的对象。 (有时非常方便)

  • 问题内容: 我正在测试内核异步io函数(不是posix aio),并试图弄清楚它是如何工作的。下面的代码是一个完整的程序,其中我简单地将一个数组重复写入使用O_DIRECT打开的文件中。我在回调函数中收到一个错误“写错的字节期望1024得到0”(请参阅​​work_done()中的fprintf语句)。 对于不熟悉内核aio的用户,以下代码将执行以下操作: 初始化一些结构 准备AIO(io_pre

  • 问题内容: 我想在ajax函数成功后替换内容,也无需刷新页面。 问题答案: http://api.jquery.com/html/ 也使用http://api.jquery.com/load/,

  • 实现点击工具栏中“+”号扩展区域内添加自定义事件,比如添加“最近订单”、“最近商品”: 注:图片需要添加到SDK中对应bundle资源文件中 /** @return 扩展内容 例如: @[@{@"picName": @"图片-(1)",@"highLightPicName": @"图片hover",@"name": @"图片1"}, @{@"picName": @"图片-(1)",@"highLi

  • 问题内容: 我正在使用Ajax发布将表单数据提交到服务器,进行验证,然后根据数据是否有效并可以存储返回一条消息。我的ajax帖子中的成功功能没有运行。这是ajax帖子和成功消息的显示: 标签上没有显示任何消息。我尝试在代码中将successmessage变量设置为一个设置值,并且显示效果很好,所以成功函数一定存在问题,我看不到什么?我也尝试设置错误回调,如下所示: 但是仍然没有消息显示。 问题答案

  • AWK内置了许多功能,程序员始终可以使用它们。 本章通过合适的示例描述了算术,字符串,时间,位操作和其他各种功能。 S.No. 内置功能和说明 1 算术函数 AWK具有以下内置算术功能。 2 字符串函数 AWK具有以下内置String函数。 3 时间函数 AWK具有以下内置时间功能。 4 位操作函数 AWK具有以下内置位操作功能。 5 杂项功能 AWK具有以下杂项功能。