私はここで初心者ですが、おそらく私の質問はすでに答えられていますが、Andy Harrisは本を書いています。私はそれを通って楽しんだが、私はここに投稿したいという質問がある(私は彼に手を差し伸べたが、回答は得られていない)。問題のコードです:絶対初心者のためのPHP 6/MySQLのプログラミングpetals.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="EN" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>petals.php</title>
<link rel = "stylesheet"
type = "text/css"
href = "petals.css" />
</head>
<body>
<h1>Petals Around the Rose</h1>
<?php
printGreeting();
printDice();
printForm();
//$numPetals = filter_input(INPUT_POST, "numPetals");
function printGreeting(){
global $numPetals;
$guess = filter_input(INPUT_POST, "guess");
$numPetals = filter_input(INPUT_POST, "numPetals");
if (!filter_has_var(INPUT_POST, "guess")){
print "<h3>Welcome to Petals Around the Rose</h3>";
} else if ($guess == $numPetals){
print "<h3>You Got It!</h3>";
} else {
print <<<HERE
<h3>from last try: </h3>
<p>
you guessed: $guess
</p>
<p>
-and the correct answer was: $numPetals petals around the rose
</p>
HERE;
} // end if
} // end printGreeting
function showDie($value){
print <<<HERE
<img src = "die$value.jpg"
height = "100"
width = "100"
alt = "die: $value" />
HERE;
} // end showDie
function printDice(){
global $numPetals;
print "<h3>New Roll:</h3> \n";
$numPetals = 0;
$die1 = rand(1,6);
$die2 = rand(1,6);
$die3 = rand(1,6);
$die4 = rand(1,6);
$die5 = rand(1,6);
print "<p> \n";
showDie($die1);
showDie($die2);
showDie($die3);
showDie($die4);
showDie($die5);
print "</p> \n";
calcNumPetals($die1);
calcNumPetals($die2);
calcNumPetals($die3);
calcNumPetals($die4);
calcNumPetals($die5);
} // end printDice
function calcNumPetals($value){
global $numPetals;
switch ($value) {
case 3:
$numPetals += 2;
break;
case 5:
$numPetals += 4;
break;
} // end switch
} // end calcNumPetals
function printForm(){
global $numPetals;
print <<<HERE
<h3>How many petals around the rose?</h3>
<form action = ""
method = "post">
<fieldset>
<input type = "text"
name = "guess"
value = "0" />
<input type = "hidden"
name = "numPetals"
value = "$numPetals" />
<br />
<input type = "submit" />
</fieldset>
</form>
<p>
<a href = "petalHelp.html">
give me a hint</a>
</p>
HERE;
} // end printForm
?>
</body>
</html>
彼は彼の本(頁のテキストを持っている人のための95)で述べている:
この関数[printGreeting()]は、$推測の両方を意味し、 $ numPetals変数。どちらも他の関数で必要となる可能性があるため、 はグローバルステートメントで定義されています。 1つのグローバルコマンドで、 グローバルステータスを複数の変数に割り当てることができます。
グローバルステートメントでどこに定義されているのかわかりません。おそらくそれを考えすぎるかもしれませんが、どんな洞察も高く評価されます。
グローバル$ numPetals; –
タイトルにPHP 6の本を使用している場合は、おそらく新しい本が必要です。 PHP 6は決して起こりませんでした。おそらく結果的に時代遅れになるでしょう。 – ceejayoz
グローバルを使用した例を示す本のための同上。 –