dongzai2952 2015-10-20 11:41
浏览 17
已采纳

PHP函数和数组

<?php
function myfunction($a, $b = true)
{
if($a && !$b) {
echo "Hello, World!
";
}
}
$s = array(0 => "my",
1 => "call",
2 => '$function',
3 => ' ',
4 => "function",
5 => '$a',
6 => '$b',
7 => 'a',
8 => 'b',
9 => '');
$a = true;
$b = false;
/* Group A */
$name = $s[?].$s[?].$s[?].$s[?].$s[?].$s[?];
/* Group B */
$name(${$s[?]}, ${$s[?]});
?>

The question is the following: Each ? in the above script represents an integer index against the $s array. In order to display the Hello, World! string when executed, what must the missing integer indexes be?

This ain't for a homework/exam, it's from an eBook I am reading, but I can't seem to understand what is happening exactly.

The given answers are the following:

1: Group A: 4,3,0,4,9,9 Group B: 7,8
2: Group A: 1,3,0,4,9,9 Group B: 7,6
3: Group A: 1,3,2,3,0,4 Group B: 5,8
4: Group A: 0,4,9,9,9,9 Group B: 7,8
5: Group A: 4,3,0,4,9,9 Group B: 7,8

The correct answer is 4, but I don't understand what example is happening in the code. I have learned that functions in PHP can be called dynamically, but I don't understand how it's done in this example. I would appreciate if anyone can explain to me step by step how we get the answer to this example.

  • 写回答

1条回答 默认 最新

  • 普通网友 2015-10-20 11:51
    关注
    $name = $s[?].$s[?].$s[?].$s[?].$s[?].$s[?];
    

    With the correct numbers filled in:

    $name = $s[0].$s[4].$s[9].$s[9].$s[9].$s[9];
    

    With the values replaced, this reduces to:

    $name = 'my'.'function'.''.''.''.'';
    

    Which is just:

    $name = 'myfunction';
    

    Now:

    $name(${$s[?]}, ${$s[?]});
    

    With the numbers filled in:

    $name(${$s[7]}, ${$s[8]});
    

    With the values replaced:

    $name(${'a'}, ${'b'});
    

    Which reduces to:

    $name($a, $b);
    

    With the values replaced:

    $name(true, false);
    

    And because $name is 'myfunction', this reduces to:

    myfunction(true, false);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值