jimjimalabim Posted March 7, 2011 Share Posted March 7, 2011 Can't figure out what is wrong with my function getVars here is my code <?php echo"<?xml version=\1.0\"encoding=\UFT-8\"\x3f>"; echo"\n"; ?> <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"lang="en"> <head> <title>My third PHP Generated Document</title> </head> <body> <h2> My Third PHP Document </h2> <?php echo "<h3>Today is ".date('l, F d, Y')."</h3>"; ?> <?php //calculate the area of an equilateral triangle function calcTriangle($cVal) { $halfSide = $cVal/2; $otherSide = sqrt(($cVal*$cVal) - ($halfSide*$halfSide)); $area = $otherSide * $halfSide; echo "<p>The area of an equilateral triangle whose sides are {$calcValue} is {$areaValue}.</p>\n"; } //calculate the area of a circle function calcCircle($cVal) { $areaValue = $calcValue * $calcValue * pi(); echo "<p>The area of a circle whose radius is {$calcValue} is {$areaValue}.</p>\n"; } //calculate the area of s square function calcSquare($cVal) { $areaValue = $calcValue * $calcValue; echo "<p>The area of a square whose sides are {$calcValue} is {$areaValue}.</p>\n"; } //function to test variables function testVars() { global $_POST; if (empty($_POST['vfld'])) { echo "<h3>Error</h3>"; echo "<p>You must enter a value!</p>\n"; return "no"; } else { return "yes"; } } //function to get variables function getVars(&$a, &$b, &$c) { global $_POST; $a->$workValue = $_POST['vfld']; $b->$workType = $_POST['tfld']; $c->$calcValue = (float) $workValue; return; } $workValue = (isset($_POST['vfld']))?$_POST['vfld']:''; $workType = (isset($_POST['tfld']))?$_POST['tfld']:''; if (isset($_POST['submit'])) { if ($_POST['submit'] == "Clear") { clearVars(); } elseif ($_POST['submit'] == "Calculate") { getVars(); $continue = testVars(); if ($continue == "yes") { switch ($workType) { case "circle": calcCircle($workVal); break; case "square": calcSquare($workVal); break; case "triangle": calcTriangle($workVal); break; } } } } <form method="post" action="hw06.php" id="form1" name="form1"> <p> Enter a number here : <input type="text" id="vfld" name="vfld" value="<?php echo $workValue; ?>"/> </p> <p> This number is: <br /> <input type="radio" name="tfld" value="circle" <?php if ($workType == "circle") { echo 'checked="checked"'; } ?> /> : the radius of a circle <br /> <input type="radio" name="tfld" value="square" <?php if ($workType == "square") { echo 'checked="checked"'; } ?> /> : the length of one side of a square <br /> <input type="radio" name="tfld" value="triangle" <?php if ($workType == "triangle") { echo 'checked="checked"'; } ?> /> : the length of one side of an equilateral triangle </p> <p> <input type="submit" name="submit" value="Calculate" /> <input type="submit" name="submit" value="Clear" /> </p> </form> <div id="footer"> </div> </body> </html> and here are my errors Warning: Missing argument 1 for getVars(), called in /studfs1/homepage/CISS-225/hw06.php on line 69 and defined in /studfs1/homepage/CISS-225/hw06.php on line 55 Warning: Missing argument 2 for getVars(), called in /studfs1/homepage/CISS-225/hw06.php on line 69 and defined in /studfs1/homepage/CISS-225/hw06.php on line 55 Warning: Missing argument 3 for getVars(), called in /studfs1/homepage/CISS-225/hw06.php on line 69 and defined in /studfs1/homepage/CISS-225/hw06.php on line 55 Notice: Undefined variable: workValue in /studfs1/homepage/CISS-225/hw06.php on line 57 Fatal error: Cannot access empty property in /studfs1/homepage/CISS-225/hw06.php on line 57 Any help would be greatly appreciated please explain too Quote Link to comment Share on other sites More sharing options...
cunoodle2 Posted March 7, 2011 Share Posted March 7, 2011 When you DEFINE a function like this.. function getVars(&$a, &$b, &$c) You need to pass in the same number of variables (in this case 3) so your function calls would look like this.. $getVars($var1, $var2, $var3) (or which ever variables you wanted to actually pass in. You have it right on the function calcCircle You define it with one variable like this.. function calcCircle($cVal) Then later call by passing a single variable to it like this.. calcCircle($workVal); The end result is that the number of passed parameters need to match up from the call to the action function. Quote Link to comment Share on other sites More sharing options...
jimjimalabim Posted March 7, 2011 Author Share Posted March 7, 2011 Thank you that did help, and I liked the explanation! Quote Link to comment Share on other sites More sharing options...
jimjimalabim Posted March 11, 2011 Author Share Posted March 11, 2011 Thank you Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.