Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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脚本的帮助吗_Php - Fatal编程技术网

需要一个简单的闪存卡PHP脚本的帮助吗

需要一个简单的闪存卡PHP脚本的帮助吗,php,Php,我正在尝试编写一个简单的PHP脚本,它的作用类似于一组闪存卡。我想让脚本(通过命令提示符)提示我一个问题,然后一旦我准备好了,我点击回车键,它就会显示答案。然后我点击回车键,它会显示下一个问题,依此类推 我已经编写了下面的脚本,但当我第一次按Enter键时,它会一直通过数组,然后立即完成。我想让它在每个问题和答案之间暂停输入 $questionsandanswers = array( "What is 1 plus 1?", "2", "What is 2 plus 2?", "4", );

我正在尝试编写一个简单的PHP脚本,它的作用类似于一组闪存卡。我想让脚本(通过命令提示符)提示我一个问题,然后一旦我准备好了,我点击回车键,它就会显示答案。然后我点击回车键,它会显示下一个问题,依此类推

我已经编写了下面的脚本,但当我第一次按Enter键时,它会一直通过数组,然后立即完成。我想让它在每个问题和答案之间暂停输入

$questionsandanswers = array(
"What is 1 plus 1?",
"2",
"What is 2 plus 2?",
"4",
);

foreach ($questionsandanswers as $qa) {
    echo $qa . "\n";
    $handle = fopen ("php://stdin","r");
    $line = fgets($handle);
    if ($line) {
        echo $qa . "\n";
        fclose($handle);
    }
}

您可以使用
-a
选项启动PHP,以将其放入交互式shell中。然后,将问题/答案的格式设置为数组中的key=>value,以便能够检查输入答案是否正确。最后打开
php://stdin
循环外部

i、 e:

user$ php -a
Interactive mode enabled

php > $handle = fopen("php://stdin", 'r');
php > $questionsandanswers = array(
php (     "What is 1 plus 1?" => 2,
php (     "What is 2 plus 2?" => 4,
php (     "What is... your favorite color?" => "Blue. Oh no... Red !"
php ( );
php > foreach ($questionsandanswers as $key => $value) {
php {     echo $key . "\n";
php {     $answer = fgets($handle);
php {     if ($answer == $value) {
php {         echo "Correct !\n";
php {     } else {
php {         echo "Wrong...\n";
php {     }
php { }
What is 1 plus 1?
2
Correct !
What is 2 plus 2?
4
Correct !
What is... your favorite color?
Green
Wrong...
玩得开心

编辑

您还可以将脚本写入文件(Q_a_script.php):


并像从命令行启动任何其他php脚本一样启动它:


php./Q\u A\u script.php

我发现了我的问题,可能是重复的。我使用旧版本的PHP运行它,这就是为什么它不工作的原因。
<?php

$handle = fopen("php://stdin", 'r');

$questionsandanswers = array(
    "What is 1 plus 1?" => 2,
    "What is 2 plus 2?" => 4,
    "What is... your favorite color?" => "Blue. Oh no... Red !"
);

foreach ($questionsandanswers as $key => $value) {
    echo $key . "\n";
    $answer = fgets($handle);
    if ($answer == $value) {
        echo "Correct !\n";
    } else {
        echo "Wrong...\n";
    }
}

fclose($handle);

?>