【问题标题】:PHP Functions and ArraysPHP 函数和数组
【发布时间】:2015-10-20 11:41:22
【问题描述】:
<?php
function myfunction($a, $b = true)
{
if($a && !$b) {
echo "Hello, World!\n";
}
}
$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[?]});
?>

问题如下:每个 ?在上面的脚本中代表一个针对 $s 数组的整数索引。为了 显示 Hello, World! string 执行时,缺少的整数索引必须是什么?

这不是家庭作业/考试,它来自我正在阅读的电子书,但我似乎无法理解到底发生了什么。

给出的答案如下:

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

正确答案是 4,但我不明白代码中发生了什么示例。我了解到 PHP 中的函数可以动态调用,但我不明白在这个示例中它是如何完成的。如果有人能一步一步地向我解释我们如何得到这个例子的答案,我将不胜感激。

【问题讨论】:

  • 既然您知道正确答案,您可以手动填写并评估代码/在您的脑海中。你试过吗?有什么不清楚的地方?
  • @u_mulder 因过于宽泛而投票结束
  • @deceze 我确实尝试过,但我不明白 A 组实际上是如何工作的。我知道 B 组只使用 $a 和 $b 及其值调用函数,打印 Hello World。
  • @user5204184 在 A 组中,您只需将函数名称连接在一起,然后使用包含函数名称的变量来调用函数。另见:3v4l.org/J3D7s

标签: php arrays function


【解决方案1】:
$name = $s[?].$s[?].$s[?].$s[?].$s[?].$s[?];

填写正确的数字:

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

替换值后,这简化为:

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

这只是:

$name = 'myfunction';

现在:

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

填写数字:

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

替换后的值:

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

简化为:

$name($a, $b);

替换后的值:

$name(true, false);

因为$name'myfunction',所以这简化为:

myfunction(true, false);

【讨论】:

  • 非常感谢,非常感谢您的帮助,现在我完全明白了答案。
猜你喜欢
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 2019-09-28
相关资源
最近更新 更多