note 62583 added to ref.math
| From: | Florian at osu1 dot php dot net | Date: | Fri, 03 Mar 2006 21:36:33 +0000 |
| Subject: | note 62583 added to ref.math | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-104791@lists.php.net to get a copy of this message | ||
A function that simulates the sum operator. (http://en.wikipedia.org/wiki/Sum). Be careful with the
expression because it may cause a security hole; note the single quotes to don't parse the
"$".
<?php
# @param string $expr expression to evaluate (for example (2*$x)^2+1)
# @param string $var dummy variable (for example "x")
# @param integer $start
# @param integer $end
# @param integer $step
function sum($expr,$var,$start,$end,$step = 1) {
$expr = str_replace(';','',$expr);
$var = str_replace('$','',$var);
$start = (int)$start; $end = (int)$end; $step = (int)$step; $sum = 0;
for ($i = $start; $i <= $end; $i = $i + $step) {
$_expr = str_replace('$'.$var,$i,$expr);
$_eval = '$_result = '.$_expr.'; return $_result;';
$_result = eval($_eval);
if($result === FALSE) return "SYNTAX ERROR : $expr";
$sum += $_result;
}
return (int)$sum;
}
?>
----
Server IP: 194.153.94.11
Probable Submitter: 83.79.103.119
----
X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER
autolearn=no version=2.64
----
Manual Page -- http://www.php.net/manual/en/ref.math.php
Edit -- http://master.php.net/note/edit/62583
Del: integrated -- http://master.php.net/note/delete/62583/integrated
Del: useless -- http://master.php.net/note/delete/62583/useless
Del: bad code -- http://master.php.net/note/delete/62583/bad+code
Del: spam -- http://master.php.net/note/delete/62583/spam
Del: non-english -- http://master.php.net/note/delete/62583/non-english
Del: in docs -- http://master.php.net/note/delete/62583/in+docs
Del: other reasons-- http://master.php.net/note/delete/62583
Reject -- http://master.php.net/note/reject/62583
Search -- http://master.php.net/manage/user-notes.php