Re: there must be better way to handle "Null" undefined variables

From: 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>
      


« previous php.windows (#29087) next »