Re: there must be better way to handle "Null" undefined variables
| From: | justin | Date: | Mon, 08 Dec 2008 17:00:36 +0000 |
| Subject: | Re: there must be better way to handle "Null" undefined variables | ||
| References: | 1 | Groups: | php.windows |
| Request: | Send a blank email to php-windows+get-29087@lists.php.net to get a copy of this message | ||
This is more a matter of a php.ini setting. Check the values of error_reporting in both your php.ini on the Windows and Linux boxes. My guess is your windows value is E_ALL.
-Justin
Fred Silsbee wrote:
Problem with the code below Works perfectly under Linux Fedora 9 however Under windows, the first page has an error <br /><b>Notice</b>: Undefined variable: ExercisePrice in <b>C:\Inetpub\wwwroot\new_black_scholes.php</b> on line <b>198</b><br /> stuck in the entry slot for every variable. I did correct the first slot with some PHP code! Is there a better way? <?php define( "ITMAX",100); define( "EPS",3.0e-7);// If the submit button has been pressed if (isset($_POST['reset'])) {$m_s = 100.; $m_e = 100.; $m_rf = .12; $m_sigma = .1; $m_time = 365.; Black_Scholes_Main($m_s, $m_e, $m_rf, $m_sigma,$m_time, $m_c, $m_p, $m_deltacalls, $m_deltaputs); $StockPrice = $m_s; $ExercisePrice = $m_e; $RiskFreeRateInterest = $m_rf; $InstantaneousVarianceRateStocksReturn = $m_sigma; $TimetoExpirationOption = $m_time; $ValueCallOption = $m_c; $ValuePutOption = $m_p; $DeltaCalls = $m_deltacalls; $DeltaPuts = $m_deltaputs; } elseif (isset($_POST['submit'])) { $m_s = $_POST['StockPrice']; $m_e = $_POST['ExercisePrice']; $m_rf = $_POST['RiskFreeRateInterest']; $m_sigma = $_POST['InstantaneousVarianceRateStocksReturn']; $m_time = $_POST['TimetoExpirationOption']; Black_Scholes_Main($m_s, $m_e, $m_rf, $m_sigma,$m_time, $m_c, $m_p, $m_deltacalls, $m_deltaputs); $StockPrice = $m_s; $ExercisePrice = $m_e; $RiskFreeRateInterest = $m_rf; $InstantaneousVarianceRateStocksReturn = $m_sigma; $TimetoExpirationOption = $m_time; $ValueCallOption = $m_c; $ValuePutOption = $m_p; $DeltaCalls = $m_deltacalls; $DeltaPuts = $m_deltaputs; }function Black_Scholes_Main($m_s, $m_e, $m_rf, $m_sigma, $m_time, &$m_c, &$m_p, &$m_deltacalls, &$m_deltaputs) {$m_c = black_scholes($m_s, $m_e, $m_rf, $m_sigma, $m_time/365., $nd1, $nd2); $m_p = $m_e / pow(1.+$m_rf, $m_time/365.) - $m_s + $m_c; $m_deltacalls = $nd1; $m_deltaputs = $nd1 - 1.;} function black_scholes( $s, $e, $rf, $sigma, $time, &$nd1, &$nd2) {$num = log($s/$e)+$time*($rf+.5*$sigma*$sigma); $d1 = $num/($sigma*sqrt($time)); $d2 = $d1 - $sigma*sqrt($time); $c = $s*myerf($d1) - $e * myerf($d2) * exp(-$rf*$time); $nd1 = myerf($d1); $nd2 = myerf($d2);return $c;} function gammln($xx) {$cof=array(76.18009173,-86.50532033,24.01409822, -1.231739516,0.120858003e-2,-0.536382e-5);$x=$xx-1.0; $tmp=$x+5.5; $tmp -= ($x+0.5)*log($tmp); $ser=1.0; for ($j=0;$j<=5;$j++) { $x += 1.0; $ser += $cof[$j]/$x; } return -$tmp+log(2.50662827465*$ser);} function gser( &$gamser, $a, $x, &$gln) {$gln=gammln($a); if ($x <= 0.0) { if ($x < 0.0) echo "x less than 0 in routine GSER"; $gamser=0.0; return; } else { $ap=$a; $sum=1.0/$a; $del=$sum; for ($n=1;$n<=ITMAX;$n++) { $ap += 1.0; $del *= $x/$ap; $sum += $del; if (abs($del) < abs($sum)*EPS) { $gamser=$sum*exp(-$x+$a*log($x)-($gln)); return; } } echo "a=$a too large, ITMAX = $itmax too small in routine GSER<br />"; return; }} function gcf( &$gammcf,$a,$x,&$gln) {$gold=0.0; $fac=1.0; $b1=1.0; $b0=0.0; $a0=1.0;$gln=gammln($a); $a1=$x; for ($n=1;$n<=ITMAX;$n++) { $an=(double) $n; $ana=$an-$a; $a0=($a1+$a0*$ana)*$fac; $b0=($b1+$b0*$ana)*$fac; $anf=$an*$fac; $a1=$x*$a0+$anf*$a1; $b1=$x*$b0+$anf*$b1; if ($a1) { $fac=1.0/$a1; $g=$b1*$fac; if (abs(($g-$gold)/$g) < EPS) { $gammcf=exp(-$x+$a*log($x)-($gln))*$g; return; } $gold=$g; } } echo "a too large, ITMAX too small in routine GCF<br />";} function gammp($a,$x) {if ($x < 0.0 || $a <= 0.0) { echo "Invalid arguments in routine GAMMP<br />"; return 0.; } if ($x < ($a+1.0)) { gser($gamser,$a,$x,$gln); return $gamser; } else { gcf($gammcf,$a,$x,$gln); return 1.0-$gammcf; }} function gammq($a,$x) {if ($x < 0.0 || $a <= 0.0) echo "Invalid arguments in routine GAMMQ<br />"; if ($x < ($a+1.0)) { gser($gamser,$a,$x,$gln); return 1.0-$gamser; } else { gcf($gammcf,$a,$x,$gln); return $gammcf; }} function erfc($x) {return $x < 0.0 ? 1.0+gammp(0.5,$x*$x) : gammq(0.5,$x*$x);} function erf($x) {return $x < 0.0 ? -gammp(0.5,$x*$x) : gammp(0.5,$x*$x);} function myerf($argin) {return .5*(1.+erf($argin/sqrt(2.0)));} ?> <form action="new_black_scholes.php" method="post"><p> Black Scholes Option Price Calculator:<br /> temp website under Redhat Fedora 9 Linux:<br /> the first 5 boxes require input(try 100. 100. .12 .1 365.):<br /> </p> <p> StockPrice (required):<br /> <input type="text" size="20" maxlength="40" name="StockPrice" value="<?php if (IsSet($StockPrice)) { echo $StockPrice; } else { echo " "; } ?>" /> </p> <p> ExercisePrice (required):<br /> <input type="text" size="20" maxlength="40" name="ExercisePrice" value="<?php echo $ExercisePrice; ?>" /></p><p> Risk Free Rate of Interest(required):<br /> <input type="text" size="20" maxlength="40" name="RiskFreeRateInterest" value="<?php echo $RiskFreeRateInterest; ?>" /> </p> <p> Instantaneous Variance Rate of Stock's Return (required):<br /> <input type="text" size="20" maxlength="40" name="InstantaneousVarianceRateStocksReturn" value="<?php echo $InstantaneousVarianceRateStocksReturn; ?>" /></p><p> Time to Expiration of the Option(days) (required):<br /> <input type="text" size="20" maxlength="40" name="TimetoExpirationOption" value="<?php echo $TimetoExpirationOption; ?>" /></p><p> Values of the Call Option :<br /> <input type="text" size="20" maxlength="40" name="ValueCallOption" VALUE="<?php echo $ValueCallOption; ?>" /></p> </p><p> Values of the Put option :<br /> <input type="text" size="20" maxlength="40" name="ValuePutOption" VALUE="<?php echo $ValuePutOption; ?>" /></p><p> Delta(calls):<br /> <input type="text" size="20" maxlength="40" name="DeltaCalls" VALUE="<?php echo $DeltaCalls; ?>" /></p><p> Delta(puts):<br /> <input type="text" size="20" maxlength="40" name="DeltaPuts" VALUE="<?php echo $DeltaPuts; ?>" /></p><button type="submit" name = "submit" value="Calculate!" style="color:maroon font:18pt Courier; font-weight:bold ">Calculate </button> <button type="submit" name = "reset" value="Demo!" style="color:red font:18pt Courier; font-weight:bold ">Demo </button></form>