#array_fill
Explore tagged Tumblr posts
om-kumar123 · 3 days ago
Text
PHP array_fill( ) Function
The array_fill( ) function is used to fill an array with values. This function creates a user-defined array with a given pre-filled value. It was introduced in PHP 4.
Syntax
array array_fill ( int $start_index , int $num , mixed $value )  
Tumblr media
0 notes
tinchicus · 2 years ago
Text
PHP / array_fill
Esta funcion nos llena o crea un array con una cantidad de elementos y le podemos asignar un valor para todos ellos, espero les sea de utilidad!
Bienvenidos sean a este post, hoy veremos una funcion para los arrays, Esta funcion nos completa un todos los elementos de un array con un valor, veamos como es su sintaxis: array_fill(inicio, cantidad, valor) El primer argumento llamado inicio sera desde cual posicion del array comenzaremos, el segundo valor sera la cantidad de posiciones que agregaremos a partir del valor pasado en inicio y…
Tumblr media
View On WordPress
0 notes
decodewebin · 6 years ago
Photo
Tumblr media
What is array_fill() function in php ?
It is an array helper function which is used to fill an array with user defined values. Moreover, this function can also makes an array with negative index.
https://decodeweb.in/php/10-not-so-famous-but-powerful-array-helper-functions-in-php/#6-array-fill
0 notes
monikafe23-blog · 8 years ago
Text
unciones Matemáticas
Tabla de contenidos ¶
abs — Valor absoluto
acos — Arco coseno
acosh — Arco coseno hiperbólico
asin — Arco seno
asinh — Arco seno hiperbólico
atan2 — Arco tangente de dos variables
atan — Arco tangente
atanh — Arco tangente hiperbólica
base_convert — Convertir un número entre bases arbitrarias
bindec — Binario a decimal
ceil — Redondear fracciones hacia arriba
cos — Coseno
cosh — Coseno hiperbólico
decbin — Decimal a binario
dechex — Decimal a hexadecimal
decoct — Decimal a octal
deg2rad — Convierte el número en grados a su equivalente en radianes
exp — Calcula la exponencial de e
expm1 — Devuelve exp(numero)-1, calculado de tal forma que no pierde precisión incluso cuando el valor del numero se aproxima a cero.
floor — Redondear fracciones hacia abajo
fmod — Devuelve el resto en punto flotante (módulo) de la división de los argumentos
getrandmax — Mostrar el mayor valor aleatorio posible
hexdec — Hexadecimal a decimal
hypot — Calcula la longitud de la hipotenusa de un triángulo de ángulo recto
intdiv — División entera
is_finite — Encuentra si un valor es un número finito legal
is_infinite — Encuentra si un valor es infinito
is_nan — Encuentra si un valor no es un número
lcg_value — Generador lineal congruente combinado
log10 — Logaritmo en base 10
log1p — Devuelve log(1 + numero), calculado de tal forma que no pierde precisión incluso cuando el valor del numero se aproxima a cero.
log — Logaritmo natural
max — Encontrar el valor más alto
min — Encontrar el valor más bajo
mt_getrandmax — Mostrar el mayor valor aleatorio posible
mt_rand — Genera un mejor número entero aleatorio
mt_srand — Genera el mejor número aleatorio a partir de una semilla
octdec — Octal a decimal
pi — Obtener valor de pi
pow — Expresión exponencial
rad2deg — Convierte el número en radianes a su equivalente en grados
rand — Genera un número entero aleatorio
round — Redondea un float
sin — Seno
sinh — Seno hiperbólico
sqrt — Raíz cuadrada
srand — Genera un número aleatorio a partir de una semilla
tan — Tangente
tanh — Tangente hiperbólica
add a note
User Contributed Notes 50 notes
up
down
2
florian at shellfire dot de
13 years ago
Please note that shorter is not always better (meaning that really short faculty implementation above). In my opinion, a clearer way to code this is, including a check for negative or non-integer values. In order to calculate the faculty of a positive integer, an iterative way (which might be harder to understand) is usually a bit faster, but I am using it only for small values so it is not really important to me: <?php    // Calculate the Faculty of a positive int-value    function iFaculty($a_iFac)    {      if ($a_iFac > 0)      {          return $a_iFac * $this->iFaculty($a_iFac - 1);      }      elseif ($a_iFac == 0)      {          return 1;      }      else      {          return 0;  // Wrong argument!      }    } ?> I've also written another function to calculate the binomial coefficient of 2 values, I didn't find it anywhere yet so I hope it might help someone (works fine with the above stated faculty-function and ready to be used inside of your own classes!) <?php    // calculates the binomial coefficient "n over k" of 2 positive int values    // for n >= k    function iBinCoeff($a_iN, $a_iK)    {        // the binomial coefficient is defined as n! / [ (n-k)! * k! ]        return $this->iFaculty($a_iN) / ($this->iFaculty($a_iN - $a_iK) * $this->iFaculty($a_iK));        } ?>
up
down
1
pat.mat AT sympatico DOT com
13 years ago
For people interest in Differential Equations, I've done a function that receive a string like: x^2+x^3 and put it in 2x+3x^2 witch is the differantial of the previous equation. In the code there is one thing missing: the $string{$i} is often going outOfBound (Uninitialized string offset: 6 in...) if your error setting is set a little too high... I just dont know how to fix this. So there is the code for differential equation with (+ and -) only: <? function differentiel($equa) {    $equa = strtolower($equa);    echo "Equation de depart: ".$equa."<br>";    $final = "";        for($i = 0; $i < strlen($equa); $i++)    {        //Make a new string from the receive $equa        if($equa{$i} == "x" && $equa{$i+1} == "^")        {            $final .= $equa{$i+2};            $final .= "x^";            $final .= $equa{$i+2}-1;        }        elseif($equa{$i} == "+" || $equa{$i} == "-")        {            $final .= $equa{$i};        }        elseif(is_numeric($equa{$i}) && $i == 0)        {            //gerer parenthese et autre terme generaux + gerer ^apres: 2^2            $final .= $equa{$i}."*";        }        elseif(is_numeric($equa{$i}) && $i > 0 && $equa{$i-1} != "^")        {            //gerer ^apres: 2^2            $final .= $equa{$i}."*";        }        elseif($equa{$i} == "^")        {            continue;        }        elseif(is_numeric($equa{$i}) && $equa{$i-1} == "^")        {            continue;        }        else        {            if($equa{$i} == "x")            {                $final .= 1;            }            else            {                $final .= $equa{$i};            }        }    }    //    //Manage multiplication add in the previous string $final    //    $finalMul = "";    for($i = 0; $i < strlen($final); $i++)    {        if(is_numeric($final{$i}) && $final{$i+1} == "*" && is_numeric($final{$i+2}))        {            $finalMul .= $final{$i}*$final{$i+2};        }        elseif($final{$i} == "*")        {            continue;        }        elseif(is_numeric($final{$i}) && $final{$i+1} != "*" && $final{$i-1} == "*")        {            continue;        }        else        {            $finalMul .= $final{$i};            }    }    echo "equa final: ".$finalMul; } ?> I know this is not optimal but i've done this quick :) If you guys have any comment just email me. I also want to do this fonction In C to add to phpCore maybe soon... Patoff
up
down
1
webkid%webkid.com
15 years ago
And the reason I needed a Factorial function is because I there were no nPr or nCr functions native to PHP, either. function n_pick_r($n,$r){$n=(int)$n; $r=(int)$r;return (fact($n)/fact($n-$r));} function n_choose_r($n,$r){$n=(int)$n; $r=(int)$r;return (n_pick_r($n,$r)/fact($r));} Hope that helps someone!
up
down
1
jbeardsl [found_at] gte [d0t] net
14 years ago
I was looking for a truncate function. Not finding one, I wrote my own. Since it deals with everything as a number, I imagine it's faster than the alternative of using string functions. HTH... <?php function truncate ($num, $digits = 0) {    //provide the real number, and the number of    //digits right of the decimal you want to keep.    $shift = pow(10, $digits);    return ((floor($num * $shift)) / $shift); } ?>
up
down
0peter-stangl at t-online dot de
11 years ago
I needed to approximate an integral because i was not able to calculate it, so i wrote this function. It approximates an integral with the composite Simpson's rule. More information on Simpson's rule: http://en.wikipedia.org/wiki/Simpson%27s_rule <?php function simpsonf($x){ // returns f(x) for integral approximation with composite Simpson's rule   return(pow((1+pow($x, (-4))), 0.5)); } function simpsonsrule($a, $b, $n){ // approximates integral_a_b f(x) dx with composite Simpson's rule with $n intervals // $n has to be an even number // f(x) is defined in "function simpsonf($x)"   if($n%2==0){      $h=($b-$a)/$n;      $S=simpsonf($a)+simpsonf($b);      $i=1;      while($i <= ($n-1)){         $xi=$a+$h*$i;         if($i%2==0){            $S=$S+2*simpsonf($xi);         }         else{            $S=$S+4*simpsonf($xi);         }         $i++;      }      return($h/3*$S);      }   else{      return('$n has to be an even number');   } } ?>
up
down
0tmpa at yahoo dot com
12 years ago
while joogat's one line function is short, it is probably better to calculate factorial iteratively instead of recursively. keep in mind if you want large factorials, you'll need to use some sort of arbitrary precision integer or perhaps the BCMath functions. then again, unless you're trying to do large numbers (170! is the highest that you can do that does not return infinity) you probably won't notice any time difference. <?php function factorial($in) {    // 0! = 1! = 1    $out = 1;    // Only if $in is >= 2    for ($i = 2; $i <= $in; $i++) {        $out *= $i;    }    return $out; } ?>
up
down
0thearbitcouncil at gmail dot com
12 years ago
Two functions I didn't find elsewhere... one to compute mean of an array of numbers, and another to computer variance of a sample of numbers. Both take an array of numbers as arguments. Not much error checking, or optimization... (note: variance function uses the average function...) <?php function average($arr) {    if (!count($arr)) return 0;    $sum = 0;    for ($i = 0; $i < count($arr); $i++)    {        $sum += $arr[$i];    }    return $sum / count($arr); } function variance($arr) {    if (!count($arr)) return 0;    $mean = average($arr);    $sos = 0;    // Sum of squares    for ($i = 0; $i < count($arr); $i++)    {        $sos += ($arr[$i] - $mean) * ($arr[$i] - $mean);    }    return $sos / (count($arr)-1);  // denominator = n-1; i.e. estimating based on sample                                    // n-1 is also what MS Excel takes by default in the                                    // VAR function } echo variance(array(4,6,23,15,18)); // echoes 64.7...correct value :) ?>
up
down
0jl85 at yahoo dot com
14 years ago
Theres another faster way of doing even/odd number checking by using bitwise operators. Don't ask me how it works, I just found this out by experimenting with it (could the editor possibly explain?) if ((1&$num)) { echo "$num is odd"; } if (!(1&$num)) { echo "$num is even"; } How it works is (1&$num) returns a 1 for odd numbers and returns 0 when it's an even number.
up
down
0nazgul26 (at_sign) windfox dot net
14 years ago
This code will convert a decimal to it's fraction equivalent. The precision can be set by changing PRECISION. <?php define(PRECISION, .01); $count=0; $result=array(); decimalToFraction($_REQUEST['dec'],$count,&$result); $count = count($result); $simp_fract = simplifyFraction($result,$count,1,$result[$count]); echo $simpl_fract; // Start of functions /*   Converts a decimal to unsimplified fraction represented in an array */ function decimalToFraction($decimal,$count,$result) {    $a = (1/$decimal);    $b = ( $a - floor($a)  );    $count++;    if ($b > .01 && $count <= 5) decimalToFraction($b,$count,&$result);    $result[$count] = floor($a); } /*    Simplifies a fraction in an array form that is returned from      decimalToFraction */ function simplifyFraction($fraction,$count,$top,$bottom) {    $next = $fraction[$count-1];    $a = ($bottom * $next) + $top;    $top = $bottom;    $bottom = $a;    $count--;    if ($count > 0) simplifyFraction($fraction,$count,$top,$bottom);    else {        return "<font size=1>$bottom/$top</font>";    } } ?>
up
down
-1
php at keith tyler dot com
6 years ago
Another ordinal method, which does not involve utilizing date functions: <?php sprintf( "%d%s", $t, array_pop( array_slice( array_merge( array( "th","st","nd","rd"), array_fill( 4,6,"th")), $t%10, 1)));' ?>
up
down
-1
capripot at gmail dot com
5 years ago
Another simpler function to check a number with the luhn algorithm : <?php function luhn($num){    if(!$num)        return false;    $num = array_reverse(str_split($num));    $add = 0;    foreach($num as $k => $v){        if($k%2)            $v = $v*2;        $add += ($v >= 10 ? $v - 9 : $v);    }    return ($add%10 == 0); } ?> Don't know if foreach and arrays operations are faster than while and substr, but I feel it clearer.
up
down
-1
bjcffnet at gmail dot com
12 years ago
thearbitcouncil at gmail dot com, you could just use array_sum(): <?php function average($arr) {   if (!is_array($arr)) return false;   return array_sum($arr)/count($arr); } $array = array(5, 10, 15); echo average($array); // 10 ?>
up
down
-1
edward at edwardsun dot com
11 years ago
well just a note.. maybe i'm a bit stupid.. but remember to use pow() rather than the "^" sign for exponents.. as it took me 5 minutes to figure out why it wasn't working.
up
down
-1
jerry dot wilborn at fast dot net
14 years ago
Here is how to calculate standard deviation in PHP where $samples is an array of incrementing numeric keys and the values are your samples: $sample_count = count($samples); for ($current_sample = 0; $sample_count > $current_sample; ++$current_sample) $sample_square[$current_sample] = pow($samples[$current_sample], 2); $standard_deviation = sqrt(array_sum($sample_square) / $sample_count - pow((array_sum($samples) / $sample_count), 2));
up
down
-1
info at gavinvincent dot co dot uk
12 years ago
If you need to deal with polar co-ordinates for somereason you will need to convert to and from x,y for input and output in most situations: here are some functions to convert cartesian to polar and polar to cartesian <? //returns array of r, theta in the range of 0-2*pi (in radians) function rect2polar($x,$y) {     if(is_numeric($x)&&is_numeric($y))    {        $r=sqrt(pow($x,2)+pow($y,2));        if($x==0)        {             if($y>0) $theta=pi()/2;            else $theta=3*pi()/2;        }        else if($x<0) $theta=atan($y/$x)+pi();        else if($y<0) $theta=atan($y/$x)+2*pi();        else $theta=atan($y/$x);        $polar=array("r"=>$r,"theta"=>$theta);        return $polar;    }    else return false; } //r must be in radians, returns array of x,y function polar2rect($r,$theta) { if(is_numeric($r)&&is_numeric($theta)) {        $x=$r*cos($theta);    $y=$r*sin($theta);    $rect=array("x"=>$x,"y"=>$y); } else {   return false; } } ?>
up
down
-1
AsherMaximum gmail
6 years ago
Here's a simple way way to convert a number to an ordinal number I created: $i == the number to convert. Put this inside a for loop if you need to populate an array. <?php // change increment variable to ordinal number. $n1 = $i % 100; //first remove all but the last two digits $n2 = ($n1 < 20 ? $1 : $i % 10; //remove all but last digit unless the number is in the teens, which all should be 'th' //$n is now used to determine the suffix. $ord = ($n2==1 ? $i.'st' : ( ($n2==2 ? $i.'nd' : ($n2==3 ? $i.'rd' : $i.'th') ) ) ) ?>
up
down
-1
Florian
11 years ago
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; } ?>
up
down
-1
jl85 at yahoo dot com
13 years ago
Here's yet another greatest common denominator (gcd) function, a reeeeally small one. function gcd($n,$m){ if(!$m)return$n;return gcd($m,$n%$m); } It works by recursion. Not really sure about it's speed, but it's really small! This won't work on floating point numbers accurately though. If you want a floating point one, you need to have at least PHP 4, and the code would be function gcd($n,$m){ if(!$m)return$n;return gcd($m,fmod($n,$m)); }
up
down
-1
ian at mp3 dot com
16 years ago
for those looking for a credit card verification function i wrote a simple LUHN Formula algorithm: <?php $valid = 1; $numOfDigits = 0 - strlen($ccNumber); $i = -1; while ($i>=$numOfDigits){  if (($i % 2) == 0){    $double = 2*(substr($ccNumber, $i, 1));    $total += substr($double,0,1);    if (strlen($double > 1)){      $total += substr($double,1,1);    }  } else {    $total += substr($ccNumber, $i, 1);  }  $i--; } if (($total % 10) != 0){  $valid = 0; } ?>
up
down
-2
Mike
9 years ago
//had a mistake in last post, heres the corrected version /* Just a simple function to trim digits from the left side of an integer. TRIM DOWN TO 4-> (ie. 987654 => 7654) */ function trimInteger($targetNumber,$newLength) {    $digits = pow(10,$newLength);    $s = ($targetNumber/ $digits); //make the last X digits the                  decimal part    $t = floor($targetNumber / $digits); //drop the last X digits (the decimal part)    $h = $s - $t; //remove all  but the decimal part    $newInteger = ($h*$digits); //make the everything after the decimal point the new number    return $newInteger; }
up
down
-2
moikboy (nospam!) moikboy (nospam!) hu
11 years ago
I think, this is the optimal code for calculating factorials: <?php function fact($int){    if($int<2)return 1;    for($f=2;$int-1>1;$f*=$int--);    return $f; }; ?> And another one for calculating the $int-th Fibonacci-number: <?php function fib($int){    static $fibTable=array();    return empty($fibTable[$int])?$fibTable[$int] = $int>1?fib($int-2)+fib($int-1):1:$fibTable[$int]; }; ?>
up
down
-2
help at gjbdesign dot com
12 years ago
Occasionally a user must enter a number in a form. This function converts fractions to decimals and leaves decimals untouched. Of course, you may wish to round the final output, but that is not included here. <?php /*Some example values of $q $q = "2.5"; $q = "2 1/2"; $q = "5/2"; */ function Deci_Con($q){ //check for a space, signifying a whole number with a fraction    if(strstr($q, ' ')){        $wa = strrev($q);        $wb = strrev(strstr($wa, ' '));        $whole = true;//this is a whole number    } //now check the fraction part    if(strstr($q, '/')){        if($whole==true){//if whole number, then remove the whole number and space from the calculations              $q = strstr($q, ' ');        } $b = str_replace("/","",strstr($q, '/'));//this is the divisor //isolate the numerator $c = strrev($q); $d = strstr($c, '/'); $e = strrev($d); $a = str_replace("/","",$e);//the pre-final numerator        if($whole==true){//add the whole number to the calculations            $a = $a+($wb*$b);//new numerator is whole number multiplied by denominator plus original numerator            } $q = $a/$b;//this is now your decimal return $q;    }else{        return $q;//not a fraction, just return the decimal    } }?>
up
down
-2
marasek.SPAMLESS at telton.de
11 years ago
I could not resist to do a simpler version of the ordinal function: <?php function ordinal($num) {    $num = (int)$num;    $digit = substr($num, -1, 1);    $ord = "th";    switch($digit)    {        case 1: $ord = "st"; break;        case 2: $ord = "nd"; break;        case 3: $ord = "rd"; break;    break;    } return $num.$ord; } ?> One could replace the typecast with <?php if($num===NULL or $num==="") {return NULL;} ?> to get an empty result instead of "0th" in case $num is empty too.
up
down
-2
fabien_mornand at yahoo dot fr
13 years ago
here is an algorithm to calculate gcd of a number. This is Euclid algorithm i was studying in Maths. I've converted it in php for the fun. <?php if($a && $b)  { $ax=$a; $bx=$b;   $r=fmod($a,$b);  if(!$r){$rx=$r;}   while($r){    $rx=$r;    $a=$b;    $b=$r;    $r=fmod($a,$b);    }   } echo 'PGCD ('.$ax.' , '.$bx.' ) = '.$rx; ?>
up
down
-2
tembenite at gmail dot com
10 years ago
To add to what Cornelius had, I have written a function that will take an array of numbers and return the least common multiple of them: function lcm_arr($items){    //Input: An Array of numbers    //Output: The LCM of the numbers    while(2 <= count($items)){        array_push($items, lcm(array_shift($items), array_shift($items)));    }    return reset($items); } //His Code below with $'s added for vars function gcd($n, $m) {   $n=abs($n); $m=abs($m);   if ($n==0 and $m==0)       return 1; //avoid infinite recursion   if ($n==$m and $n>=1)       return $n;   return $m<$n?gcd($n-$m,$n):gcd($n,$m-$n); } function lcm($n, $m) {   return $m * ($n/gcd($n,$m)); }
up
down
-2
Chronial "at" cyberpunkuniverse.de
13 years ago
Here are are a nPr and a nPc function (had to define NaN - don't know, how to this the "rigth" way) <?php define (NaN,acos(1.01)); function nCr($n,$r){   if ($r > $n)      return NaN;   if (($n-$r) < $r)      return nCr($n,($n-$r));   $return = 1;   for ($i=0;$i < $r;$i++){      $return *= ($n-$i)/($i+1);   }   return $return; } function nPr($n,$r){   if ($r > $n)      return NaN;   if ($r)      return $n*(nPr($n-1,$r-1));   else      return 1; } ?>
up
down
-2
Aiden880
2 years ago
Lowest Common Denominator: function lcd($num, $start) {    while($num % $start != 0) {        $start++;    }    return $start; }
up
down
-3
eric at woolhiser dot com
12 years ago
For all you guys writing mortgage calculators out there: <?php function payment($apr,$n,$pv,$fv=0.0,$prec=2){    /* Calculates the monthly payment rouned to the nearest penny    ** $apr = the annual percentage rate of the loan.    ** $n   = number of monthly payments (360 for a 30year loan)    ** $pv    = present value or principal of the loan    ** $fv  = future value of the loan    ** $prec = the precision you wish rounded to    */    /****************************************\    ** No Warranty is expressed or implied. **    *****************************************/        if ($apr !=0) {        $alpha = 1/(1+$apr/12);        $retval =  round($pv * (1 - $alpha) / $alpha /        (1 - pow($alpha,$n)),$prec) ;    } else {        $retval = round($pv / $n, $prec);    }    return($retval); } ?>
up
down
-2
barry at megaspace dot com
10 years ago
Here's a least common denominator (lcd) function: $array = array(3,4,6,8,18,2);        function lcd($array,$x) {                        $mod_sum = 0;                for($int=1;$int < count($array);$int++) {                            $modulus[$int] = ($array[0]*$x) % ($array[$int]);            $mod_sum = $mod_sum + $modulus[$int];                    }                    if (!$mod_sum) {            echo "LCD: ".($array[0]*$x)."\n";        }                    else {            lcd($array,$x+1);        }            } lcd($array,1);
up
down
-2
daniel at g-loc dot org
11 years ago
If you're an aviator and needs to calculate windcorrection angles and groundspeed (e.g. during flightplanning) this can be very useful. $windcorrection = rad2deg(asin((($windspeed * (sin(deg2rad($tt - ($winddirection-180))))/$tas)))); $groundspeed = $tas*cos(deg2rad($windcorrection)) + $windspeed*cos(deg2rad($tt-($winddirection-180))); You can probably write these lines more beautiful, but they work!
up
down
-2
monte at ohrt dot com
11 years ago
This is an efficient method of calculating the binomial coefficient C(n,k). This code was derived from Owant: Mastering Algorithms with Perl. <?php   // calculate binomial coefficient   function binomial_coeff($n, $k) {      $j = $res = 1;      if($k < 0 || $k > $n)         return 0;      if(($n - $k) < $k)         $k = $n - $k;      while($j <= $k) {         $res *= $n--;         $res /= $j++;      }      return $res;   } ?> If you compiled php with --enable-bcmath, you can get full integer values of extremely large numbers by replacing: $res *= $n--; $res /= $j++; with: $res = bcmul($res, $n--); $res = bcdiv($res, $j++);
up
down
-2
jordanolsommer at imap dot cc
13 years ago
The reason the bitwise AND ("&") operator works to determine whether a number is odd or even is because odd numbers expressed in binary always have the rightmost (2^0) bit = 1 and even numbers always have the 2^0 bit = 0. So if you do a " 1 & $num", it will return zero if the number is even (since xxxxxxx0 [the even number in binary] and 00000001 [the 1]) don't share any bits, and will return 1 if the number is odd (xxxxxx1 and 000001). a clever way of doing things, but $num % 2 would work as well i think :).
up
down
-2
ddarjany at yahoo dot com
9 years ago
Tim's fix of Evan's ordinal function causes another problem, it no longer works for number above 100.  (E.g. it returns 111st instead of 111th).   Here is a further modified version which should work for all numbers. <?PHP function ordinal($cardinal)    {  $cardinal = (int)$cardinal;  $digit = substr($cardinal, -1, 1);  if ($cardinal <100) $tens = round($cardinal/10);  else $tens = substr($cardinal, -2, 1);  if($tens == 1)  {    return $cardinal.'th';  }  switch($digit) {    case 1:      return $cardinal.'st';    case 2:      return $cardinal.'nd';    case 3:      return $cardinal.'rd';    default:      return $cardinal.'th';  } } ?>
up
down
-4
lummox
9 years ago
Wouldn't the following function do the same but a lot easier than the one in the comment before? function trimInteger($targetNumber,$newLength) {    return $targetNumber%pow(10,$newLength); }
up
down
-2
ausvald at tut dot by
13 years ago
I see there are some factorial functions below. I'll provide the best one: <? function factorial($n){ $n=(int)$n;  $f=1;  for(;$n>0;--$n) $f*=$n;  return $f; } ?>
up
down
-2
matthew_gaddis at yahoo dot com
14 years ago
Here is a cleaner factorial function: function factorial($s){    if($s) $r = $s * factorial($s - 1);    else $r = 1;    return $r; }
up
down
-2
jbeardsl at gte dot net
14 years ago
I needed a truncate function to operate on real numbers. I preferred not to use a string-manipulation method, so here's my solution. HTH... function truncate ($num, $digits = 0) {    //provide the real number, and the number of    //digits right of the decimal you want to keep.    $shift = pow(10 , $digits);    return ((floor($num * $shift)) / $shift); }
up
down
-3
twoscoopsofpig at NOSPAM dot gmail dot com
11 years ago
@ Moikboy: This may or may not be more simplified factorialization: <?php $f=$fact=25; while ($fact>0) {$f=$f*$fact--;} echo $f; ?>
up
down
-3
graywh at gmail DELETE dot com
12 years ago
If you're really concerned about speed, you could compute the factorial of large numbers using the Gamma function of n-1. Integral y^(t-1)*Exp(-y) for y from 0 to Infinity For Fibonacci numbers, there's a better-than-recursive way. ((1+sqrt(5))/2)^(n/sqrt(5)) - ((1-sqrt(5))/2)^(n/sqrt(5))
up
down
-3
chris at free-source dot com
13 years ago
to "convert" scientific notation to a float simply cast it: <?php $val = '3.5e4'; $val = (float) $val; echo $val; ?> output: 35000
up
down
-3
patience at worldonline dot nl
15 years ago
The example for Factorials given above is wrong. Here a correct version, so that you do not have to reinvent the wheel again... <?php function mathFact( $s ) {  $r = (int) $s;  if ( $r < 2 )    $r = 1;  else {    for ( $i = $r-1; $i > 1; $i-- )      $r = $r * $i;  }  return( $r ); } ?>
up
down
-3
cornelius at skjoldhoej dot dk
16 years ago
I found that when dealing with tables, a 'least common multiple' function is sometimes useful for abusing tablespan and the likes. So here goes (you may choose to remove the first part of the gcd function if the function call is well-behaved): <?php function gcd(n, m) //greatest common divisor {    n=abs(n); m=abs(m);    if (n==0 and m==0)        return 1; //avoid infinite recursion    if (n==m and n>=1)        return n;    return m<n?gcd(n-m,n):gcd(n,m-n); } function lcm(n, m) //least common multiple {    return m*(n/gcd(n,m)); } ?> This may or may not be something to consider adding to the mathematical function library.
up
down
-3
erikvandeven100 at gmail dot com
9 months ago
This is my factorial method <?php function factorial($nr) {    $product = array_product(range(1,++$nr));    return $product / $nr; } ?> It uses the reversed method by applying division instead of multiplication, so it even returns the right answer when entering 0.
up
down
-3
tim at durge dot org
10 years ago
In Evan's ordinal function, the line: <?php  $tens = substr($cardinal, -2, 1); ?> needs to be replaced by: <?php  $tens = round($cardinal/10); ?> or similar. At least on PHP 4.3.10,  substr("1", -2, 1)  returns '1' - so Evan's function gives "1th", as well as "11th".  This is contrary to the documentation, but is noted in the comments on the substr manual page.
up
down
-4
donnieb819 at hotmail dot NOSPAM dot com
12 years ago
Method to convert an arbitrary decimal number to its most reduced fraction form (so a string is returned, this method would probably be used for output formatting purposes.)  There were other methods similar to this one on the page, but none did quite what I wanted.  It's maybe not the most elegant code, but it gets the job done.  Hope this helps someone.  An iterative form of Euclid's algorithm is used to find the GCD. <?php function dec2frac( $decimal ) {  $decimal = (string)$decimal;  $num = '';  $den = 1;  $dec = false;    // find least reduced fractional form of number  for( $i = 0, $ix = strlen( $decimal ); $i < $ix; $i++ )  {    // build the denominator as we 'shift' the decimal to the right    if( $dec ) $den *= 10;        // find the decimal place/ build the numberator    if( $decimal{$i} == '.' ) $dec = true;    else $num .= $decimal{$i};  }  $num = (int)$num;      // whole number, just return it  if( $den == 1 ) return $num;      $num2 = $num;  $den2 = $den;  $rem  = 1;  // Euclid's Algorithm (to find the gcd)  while( $num2 % $den2 ) {    $rem = $num2 % $den2;    $num2 = $den2;    $den2 = $rem;  }  if( $den2 != $den ) $rem = $den2;      // now $rem holds the gcd of the numerator and denominator of our fraction  return ($num / $rem ) . "/" . ($den / $rem); } ?> Examples: echo dec2frac( 10 ); echo dec2frac( .5 ); echo dec2frac( 5.25 ); echo dec2frac( .333333333 ); yields: 10 1/2 21/4 333333333/1000000000
up
down
-4
rubo77 at spacetrace dot org
9 years ago
<?php function lcd($n,$m, $maxvarianzpercent=0){    // set $maxvarianzpercent=5 to get a small, but approx. result    /* a better lcd function with varianz:    for example use    lcd(141,180,5) to get the approx. lcd '7/9' which is in fact 140/180    */    // ATTENTION!!! can be really slow if $m is >1000        $d=$n/$m;    $f=1;    while($d*$f!=intval($d*$f)){        $f++;    }    $r=($d*$f).'/'.$f;    if(($d*$f)<=10 or $f<=10) return $r;    else if($maxvarianzpercent>0){        $f=1;        while($d*$f!=intval($d*$f) and ($d*$f)-intval($d*$f) > $maxvarianzpercent/100){            $f++;        }        return intval($d*$f).'/'.$f;    } else return $r; } ?>
up
down
-4
Evan Broder
11 years ago
A slightly more complex but much more accurate cardinal=>ordinal function (the one below doesn't account for 11th, 12th, and 13th, which don't follow the usual rules): <?php    function ordinal($cardinal)    {        $cardinal = (int)$cardinal;        $digit = substr($cardinal, -1, 1);        $tens = substr($cardinal, -2, 1);        if($tens == 1)        {            return $cardinal.'th';        }                switch($digit)        {        case 1:            return $cardinal.'st';        case 2:            return $cardinal.'nd';        case 3:            return $cardinal.'rd';        default:            return $cardinal.'th';        }    } ?>
up
down
-4
shanx at shanx dot com
15 years ago
<? /** * Function to calculate base36 values from a number. Very * useful if you wish to generate IDs from numbers. * * @param $value The number * @param $base The base to be applied (16, 36 or 64) * @return The calculated string * @author Shashank Tripathi ([email protected]) * @version 0.1 - Let me know if something doesnt work * */ function base36($value, $base) {    $baseChars = array('0', '1', '2', '3', '4', '5',                       '6', '7', '8', '9', 'a', 'b',                       'c', 'd', 'e', 'f', 'g', 'h',                       'i', 'j', 'k', 'l', 'm', 'n',                       'o', 'p', 'q', 'r', 's', 't',                       'u', 'v', 'w', 'x', 'y', 'z'                     );    $remainder = 0;    $newval = "";        while ( $value > 0 )    {        $remainder = $value % $base;        $value = ( ($value - $remainder)/ $base );        $newval .= $baseChars[$remainder];    }    return strrev($newval);     } echo "The string for 46655, for instance, is " . base36(46655, 36); ?>
up
down
-5
jos at gtacrime dot nl
11 years ago
Thanks to Chronial "at" cyberpunkuniverse.de, I was able to create the binompdf(n, p, k) function. <?php function nCr($n, $k){   if ($k > $n)     return NaN;   if (($n - $k) < $k)     return nCr($n, ($n - $k));   $return = 1;   for ($i=0; $i<$k; $i++){     $return *= ($n - $i) / ($i + 1);   }   return $return; } function binompdf($n, $p, $k){    $return = nCr($n, $k) * pow($p, $k) * pow((1 - $p), ($n - $k));    return $return; } ?>
up
down
-5
webkid%webkid.com
15 years ago
I found it kind of irritating that PHP had no n
0 notes
monikafe23-blog · 8 years ago
Text
Listado de Funciones y Métodos ¶ Lista todas las funciones y métodos del manual a b c d e f g h i j k l m n o p q r s t u v w x y z _ a abs - Valor absoluto acos - Arco coseno acosh - Arco coseno hiperbólico addcslashes - Escapa una cadena al estilo de C addslashes - Escapa un string con barras invertidas apache_child_terminate - Finaliza un proceso de Apache después de esta llamada apache_getenv - Obtiene una variable del entorno subprocess_env de Apache apache_get_modules - Obtiene una lista de los módulos cargados en el servidor Apache apache_get_version - Obtiene la versión del servidor Apache apache_lookup_uri - Realiza una petición parcial por la URI especificada y devuelve toda la información sobre ella apache_note - Obtiene y establece las notas de petición de apache apache_request_headers - Obtiene todas las cabeceras HTTP apache_reset_timeout - Restaura el temporizador de Apache apache_response_headers - Obtiene todas las cabeceras HTTP de respuesta apache_setenv - Establece una variable subprocess_env de Apache APCIterator::current - Obtener el elemento actual APCIterator::getTotalCount - Obtener la cuenta total APCIterator::getTotalHits - Obtener el total de éxitos de la caché APCIterator::getTotalSize - Obtener el tamaño total de la caché APCIterator::key - Obtener la clave del iterador APCIterator::next - Mover el puntero al siguiente elemento APCIterator::rewind - Rebobina el iterator APCIterator::valid - Comprueba si la posición acutal es válida APCIterator::__construct - Construye un objeto iterador APCIterator APCUIterator::current - Get current item APCUIterator::getTotalCount - Get total count APCUIterator::getTotalHits - Get total cache hits APCUIterator::getTotalSize - Get total cache size APCUIterator::key - Get iterator key APCUIterator::next - Move pointer to next item APCUIterator::rewind - Rewinds iterator APCUIterator::valid - Checks if current position is valid APCUIterator::__construct - Constructs an APCUIterator iterator object apcu_add - Cache a new variable in the data store apcu_cache_info - Retrieves cached information from APCu's data store apcu_cas - Updates an old value with a new value apcu_clear_cache - Clears the APCu cache apcu_dec - Decrease a stored number apcu_delete - Elimina una variable almacenada en caché apcu_entry - Atomically fetch or generate a cache entry apcu_exists - Checks if entry exists apcu_fetch - Fetch a stored variable from the cache apcu_inc - Increase a stored number apcu_sma_info - Retrieves APCu Shared Memory Allocation information apcu_store - Cache a variable in the data store apc_add - Poner una nueva variable en caché en el almacén de datos apc_bin_dump - Obtener una copia binaria de los ficheros y variables de usuario dados apc_bin_dumpfile - Imprimir a un fichero una copia binaria de los ficheros y variables de usuario almacenados en caché apc_bin_load - Cargar una copia binaria en la caché de archivo/usuario de APC apc_bin_loadfile - Cargar una copia binaria desde un fichero a la caché de fichero/usuario de APC apc_cache_info - Recupera información que hay en caché del almacén de datos de APC apc_cas - Actualiza un valor anterior por un nuevo valor apc_clear_cache - Limpia la caché de APC apc_compile_file - Almacena un archivo en la caché de código de byte, evitando todos los filtros apc_dec - Disminuye un número almacenado apc_define_constants - Define un conjunto de constantes para recuperación y definición en masa apc_delete - Elimina una variable almacenada de la caché apc_delete_file - Borra archivos de la caché del código de operación apc_exists - Comprobar si existe una clave de APC apc_fetch - Traer una variable almacenada desde la caché apc_inc - Aumentar un número almacenado apc_load_constants - Carga un conjunto de constantes de la caché apc_sma_info - Recupera la información de la Asignación de Memoria Compartida de APC apc_store - Guardar una variable en caché en el almacén de datos apd_breakpoint - Detiene el interpretador y espera en un CR desde el socket apd_callstack - Retorna la actual pila de llamado como una matriz apd_clunk - Lanza una advertencia y una pila de llamado apd_continue - Reinicia el interpretador apd_croak - Lanza un error, una pila de lamado y entonces sale apd_dump_function_table - Muestra la tabla de funciones actual apd_dump_persistent_resources - Retorna todos los recursos persistentes como una matriz apd_dump_regular_resources - Retorna todos los recursos regulares actuales como una matriz apd_echo - Echo hacia el socket de depurado apd_get_active_symbols - Obtener una matriz con los nombres de las variables actuales en el ámbito local apd_set_pprof_trace - Inicia la sesión de depurado apd_set_session - Cambia o configura el nivel actual de depurado apd_set_session_trace - Inicia la sesión de depurado apd_set_session_trace_socket - Inicia la sesión remota de depurado AppendIterator::append - Añade un iterador AppendIterator::current - Obtiene el valor actual AppendIterator::getArrayIterator - Obtiene el getArrayIterator AppendIterator::getInnerIterator - Obtiene el iterador interno AppendIterator::getIteratorIndex - Obtiene un índice de iteradores AppendIterator::key - Obtiene la clave actual AppendIterator::next - Desplazarse al siguiente elemento AppendIterator::rewind - Rebobina el iterador AppendIterator::valid - Comprueba la validación del elemento actual AppendIterator::__construct - Construye un AppendIterator array - Crea un array ArrayAccess::offsetExists - Comprobar si existe un índice ArrayAccess::offsetGet - Offset para recuperar ArrayAccess::offsetSet - Asignar un valor al índice esepecificado ArrayAccess::offsetUnset - Destruye un offset ArrayIterator::append - Añade un elemento ArrayIterator::asort - Ordena array por sus valores ArrayIterator::count - Cuenta elementos ArrayIterator::current - Devuelve la entrada actual del array ArrayIterator::getArrayCopy - Obtener copia de un array ArrayIterator::getFlags - Obtener opciones ArrayIterator::key - Devuelve la clave actual del array ArrayIterator::ksort - Ordena un array por sus claves ArrayIterator::natcasesort - Ordena un array de forma natural, sensible a mayúsculas ArrayIterator::natsort - Ordena un array de forma natural ArrayIterator::next - Desplaza a la siguiente entrada ArrayIterator::offsetExists - Compruebar si el índice existe ArrayIterator::offsetGet - Obtener el valor de un índice ArrayIterator::offsetSet - Establece el valor para un índice ArrayIterator::offsetUnset - Destruye el valor de un índice ArrayIterator::rewind - Rebobinar array al inicio ArrayIterator::seek - Buscar la posición ArrayIterator::serialize - Serializar ArrayIterator::setFlags - Definir opciones de comportamiento ArrayIterator::uasort - Ordenado definido por el usuario ArrayIterator::uksort - Ordenado definido por el usuario ArrayIterator::unserialize - Deserializar ArrayIterator::valid - Comprueba si un array contiene más entradas ArrayIterator::__construct - Construye un ArrayIterator ArrayObject::append - Añade un valor ArrayObject::asort - Ordena las entradas por valor ArrayObject::count - Obtener el número de propiedades públicas en la clase ArrayObject ArrayObject::exchangeArray - Intercambia el array por otro ArrayObject::getArrayCopy - Crea una copia de la clase ArrayObject ArrayObject::getFlags - Obtiene las flags de comportamiento ArrayObject::getIterator - Crear un nuevo iterador desde una instancia ArrayObject ArrayObject::getIteratorClass - Obtiene el nombre de clase iterador para ArrayObject ArrayObject::ksort - Ordena las entradas por clave ArrayObject::natcasesort - Ordena un array usando un algoritmo orden natural ArrayObject::natsort - Ordena entradas usando un algoritmo de orden natural ArrayObject::offsetExists - Devuelve si el índice solicitado existe ArrayObject::offsetGet - Devuelve el valor del índice especificado ArrayObject::offsetSet - Establece el valor en el índice especificado ArrayObject::offsetUnset - Destruye el valor para el índice especificado ArrayObject::serialize - Serializar un ArrayObject ArrayObject::setFlags - Establece las flags de comportamiento ArrayObject::setIteratorClass - Establece el nombre de clase iterador para ArrayObject ArrayObject::uasort - Ordena las entradas con una función de comparación definida por el usuario y mantiene asociación de claves ArrayObject::uksort - Ordena las entradas por clave usando una función de comparación definida por el usuario ArrayObject::unserialize - Deserializar el objeto ArrayObject ArrayObject::__construct - Construir un nuevo objeto Array array_change_key_case - Cambia a mayúsculas o minúsculas todas las claves en un array array_chunk - Divide un array en fragmentos array_column - Devuelve los valores de una sola columna del array de entrada array_combine - Crea un nuevo array, usando una matriz para las claves y otra para sus valores array_count_values - Cuenta todos los valores de un array array_diff - Calcula la diferencia entre arrays array_diff_assoc - Calcula la diferencia entre arrays con un chequeo adicional de índices array_diff_key - Calcula la diferencia entre arrays empleando las claves para la comparación array_diff_uassoc - Calcula la diferencia entre arrays con un chequeo adicional de índices que se realiza por una función de devolución de llamada suministrada por el usuario array_diff_ukey - Calcula la diferencia entre arrays usando una función de devolución de llamada en las keys para comparación array_fill - Llena un array con valores array_fill_keys - Llena un array con valores, especificando las keys array_filter - Filtra elementos de un array usando una función de devolución de llamada array_flip - Intercambia todas las claves de un array con sus valores asociados array_intersect - Calcula la intersección de arrays array_intersect_assoc - Calcula la intersección de arrays con un chequeo adicional de índices array_intersect_key - Calcula la intersección de arrays usando sus claves para la comparación array_intersect_uassoc - Calcula la intersección de arrays con una comprobación adicional de índices, los cuales se comparan con una función de retrollamada array_intersect_ukey - Calcula la intersección de arrays usando una función de devolución de llamada en las claves para la comparación array_keys - Devuelve todas las claves de un array o un subconjunto de claves de un array array_key_exists - Verifica si el índice o clave dada existe en el array array_map - Aplica la retrollamada a los elementos de los arrays dados array_merge - Combina dos o más arrays array_merge_recursive - Une dos o más arrays recursivamente array_multisort - Ordena varios arrays, o arrays multidimensionales array_pad - Rellena un array a la longitud especificada con un valor array_pop - Extrae el último elemento del final del array array_product - Calcula el producto de los valores de un array array_push - Inserta uno o más elementos al final de un array array_rand - Seleccionar una o más entradas aleatorias de un array array_reduce - Reduce iterativamente un array a un solo valor usando una función llamada de retorno array_replace - Reemplaza los elementos de los arrays pasados en el primer array array_replace_recursive - Reemplaza los elementos de los arrays pasados al primer array de forma recursiva array_reverse - Devuelve un array con los elementos en orden inverso array_search - Busca un valor determinado en un array y devuelve la primera clave correspondiente en caso de éxito array_shift - Quita un elemento del principio del array array_slice - Extraer una parte de un array array_splice - Elimina una porción del array y la reemplaza con otra cosa array_sum - Calcular la suma de los valores de un array array_udiff - Computa la diferencia entre arrays, usando una llamada de retorno para la comparación de datos array_udiff_assoc - Computa la diferencia entre arrays con una comprobación de indices adicional, compara la información mediante una función de llamada de retorno array_udiff_uassoc - Computa la diferencia entre arrays con una verificación de índices adicional, compara la información y los índices mediante una función de llamada de retorno array_uintersect - Computa una intersección de arrays, compara la información mediante una función de llamada de retorno array_uintersect_assoc - Calcula la intersección de arrays con una comprobación de índices adicional, compara la información mediante una función de retrollamada array_uintersect_uassoc - Calcula la intersección de arrays con una comprobación de índices adicional, compara la información y los índices mediante funciones de retrollamada por separado array_unique - Elimina valores duplicados de un array array_unshift - Añadir al inicio de un array uno a más elementos array_values - Devuelve todos los valores de un array array_walk - Aplicar una función proporcionada por el usuario a cada miembro de un array array_walk_recursive - Aplicar una función de usuario recursivamente a cada miembro de un array arsort - Ordena un array en orden inverso y mantiene la asociación de índices Aserción - Verifica si la aserción es FALSE asin - Arco seno asinh - Arco seno hiperbólico asort - Ordena un array y mantiene la asociación de índices assert_options - Establecer/obtener valores de las directivas relacionadas con las aserciones atan - Arco tangente atan2 - Arco tangente de dos variables atanh - Arco tangente hiperbólica b base64_decode - Decodifica datos codificados con MIME base64 base64_encode - Codifica datos con MIME base64 basename - Devuelve el último componente de nombre de una ruta base_convert - Convertir un número entre bases arbitrarias bbcode_add_element - Añade un elemento bbcode bbcode_add_smiley - Añade un smiley al analizador bbcode_create - Crea un resource de BBCode bbcode_destroy - Cierra un recurso BBCode_container bbcode_parse - Analiza un string siguiendo el set de reglas dado bbcode_set_arg_parser - Añade otro analizador para usar otro set de reglas para analizar argumentos bbcode_set_flags - Establece o cambia las opciones del analizador bcadd - Añade dos números de precisión arbitrária bccomp - Compara dos números de precisión arbitraria bcdiv - Divide dos números de precisión arbitraria bcmod - Obtiene el módulo de un número de precisión arbitraria bcmul - Multiplica dos números de precisión arbitraria bcompiler_load - Lee y crea clases desde un archivo comprimido con bz bcompiler_load_exe - Lee y crea clases desde un archivo exe de bcompiler bcompiler_parse_class - Lee el código de bytes de una clase y realiza una llamada de retorno a una función de usuario bcompiler_read - Lee y crea clases ded un gestor de archivo bcompiler_write_class - Escribe una clase definida como código de bytes bcompiler_write_constant - Escribe una constante definida como código de bytes bcompiler_write_exe_footer - Escribe la posición de inicio y la firma al final de un archivo de tipo exe bcompiler_write_file - Escribe un fichero fuente de php como código de bytes bcompiler_write_footer - Escribe el carácter \x00 para indicar el Final de los datos compilados bcompiler_write_function - Escribe una función definida como código de bytes bcompiler_write_functions_from_file - Escribe todas las funciones definidas en un archivo como código de bytes bcompiler_write_header - Escribe la cabecera de bcompiler bcompiler_write_included_filename - Escribe un archivo incluido como código de bytes bcpow - Elevar un número de precisión arbitraria a otro bcpowmod - Eleva un número de precisión arbitraria a otro, reducido por un módulo especificado bcscale - Establece los parametros de scale por defecto para todas las funciones matemáticas de bc bcsqrt - Obtiene la raiz cuadrada de un número de precisión arbitraria bcsub - Resta un número de precisión arbitraria de otro bin2hex - Convierte datos binarios en su representación hexadecimal bindec - Binario a decimal bindtextdomain - Establece la ruta del dominio bind_textdomain_codeset - Especifica el juego de caracteres en que los mensajes del catálogo del dominio serán devueltos blenc_encrypt - Encripta un script PHP con BLENC. boolval - Obtener el valor booleano de una variable bson_decode - Decodifica un objecto BSON a un array PHP bson_encode - Serializa una variable PHP a un string BSON bzclose - Cierra un fichero bzip2 bzcompress - Comprime una cadena en datos codificados en bzip2 bzdecompress - Descomprime datos codificados con bzip2 bzerrno - Devuelve el número de erro de bzip2 bzerror - Devuelve el número de error y la cadena del error de bzip2 en un array bzerrstr - Devuelve una cadena de error de bzip2 bzflush - Fuerza la escritura de todos los datos del búfer bzopen - Abre un fichero comprimido con bzip2 bzread - Lectura segura de ficheros bzip2 bzwrite - Escribe en un fichero bzip2 de forma segura binariamente c CachingIterator::count - El número de elementos en el iterador CachingIterator::current - Devuelve el elemento actual CachingIterator::getCache - Recuperar el contenido de la caché CachingIterator::getFlags - Obtener las banderas utilizadas CachingIterator::getInnerIterator - Devuelve el iterador interno CachingIterator::hasNext - Comprueba que el iterador interno tenga un elemento siguiente válido CachingIterator::key - Devuelve la clave del elemento actual CachingIterator::next - Desplaza el iterador adelante CachingIterator::offsetExists - Comprobar existencia de un índice CachingIterator::offsetGet - El propósito offsetGet CachingIterator::offsetSet - El propósito offsetSet CachingIterator::offsetUnset - El propósito offsetUnset CachingIterator::rewind - Rebobina el iterador CachingIterator::setFlags - El propósito de setFlags CachingIterator::valid - Comprueba que el elemento actual sea válido CachingIterator::__construct - Construir un nuevo objeto CachingIterator para el iterador CachingIterator::__toString - Devolver la representación en formato cadena del elemento actual Cairo::availableFonts - Recupera los tipos de fuente disponibles Cairo::availableSurfaces - Recupera todas las superficies disponibles Cairo::statusToString - Recupera el estado acutal como cadena Cairo::version - Recupera la versión de la biblioteca cairo Cairo::versionString - Recupera la versión de cairo como cadena CairoContext::appendPath - Añade un trazado al trazado actual CairoContext::arc - Añade un arco circular CairoContext::arcNegative - Añade un arco negativo CairoContext::clip - Establece una nueva región de recorte CairoContext::clipExtents - Computa el área dentro del recorte actual CairoContext::clipPreserve - Establce una nueva región de recorte desde el recorte actual CairoContext::clipRectangleList - Recupera el recorte actual como una lista de rectángulos CairoContext::closePath - Cierra el trazado actual CairoContext::copyPage - Emite la página actual CairoContext::copyPath - Crea una copia del trazado actual CairoContext::copyPathFlat - Obtiene una copia aplanada del trazado actual CairoContext::curveTo - Añade una curva CairoContext::deviceToUser - Transforma una coordenada CairoContext::deviceToUserDistance - Transformar una distancia CairoContext::fill - Rellena el trazado actual CairoContext::fillExtents - Cumputa el área rellenada CairoContext::fillPreserve - Rellena y conserva el trazado actual CairoContext::fontExtents - Obtener el alcance de una fuente CairoContext::getAntialias - Recupera el modo de antialias actual CairoContext::getCurrentPoint - El propósito de getCurrentPoint CairoContext::getDash - El propósito de getDash CairoContext::getDashCount - El propósito de getDashCount CairoContext::getFillRule - El propósito de getFillRule CairoContext::getFontFace - El propósito de getFontFace CairoContext::getFontMatrix - El propósito de getFontMatrix CairoContext::getFontOptions - El propósito de getFontOptions CairoContext::getGroupTarget - El propósito de getGroupTarget CairoContext::getLineCap - El propósito de getLineCap CairoContext::getLineJoin - El propósito de getLineJoin CairoContext::getLineWidth - El propósito de getLineWidth CairoContext::getMatrix - El propósito de getMatrix CairoContext::getMiterLimit - El propósito de getMiterLimit CairoContext::getOperator - El propósito de getOperator CairoContext::getScaledFont - El propósito de getScaledFont CairoContext::getSource - El propósito de getSource CairoContext::getTarget - El propósito de getTarget CairoContext::getTolerance - El propósito de getTolerance CairoContext::glyphPath - El propósito de glyphPath CairoContext::hasCurrentPoint - El propósito de hasCurrentPoint CairoContext::identityMatrix - El propósito de identityMatrix CairoContext::inFill - El propósito de inFill CairoContext::inStroke - El propósito de inStroke CairoContext::lineTo - El propósito de lineTo CairoContext::mask - El propósito de mask CairoContext::maskSurface - El propósito de maskSurface CairoContext::moveTo - El propósito de moveTo CairoContext::newPath - El propósito de newPath CairoContext::newSubPath - El propósito de newSubPath CairoContext::paint - El propósito de paint CairoContext::paintWithAlpha - El propósito de paintWithAlpha CairoContext::pathExtents - El propósito de pathExtents CairoContext::popGroup - El propósito de popGroup CairoContext::popGroupToSource - El propósito de popGroupToSource CairoContext::pushGroup - El propósito de pushGroup CairoContext::pushGroupWithContent - El propósito de pushGroupWithContent CairoContext::rectangle - El propósito de rectangle CairoContext::relCurveTo - El propósito de relCurveTo CairoContext::relLineTo - El propósito de relLineTo CairoContext::relMoveTo - El propósito de relMoveTo CairoContext::resetClip - El propósito de resetClip CairoContext::restore - El propósito de restore CairoContext::rotate - El propósito de rotate CairoContext::save - El propósito de save CairoContext::scale - El propósito de scale CairoContext::selectFontFace - El propósito de selectFontFace CairoContext::setAntialias - El propósito de setAntialias CairoContext::setDash - El propósito de setDash CairoContext::setFillRule - El propósito de setFillRule CairoContext::setFontFace - El propósito de setFontFace CairoContext::setFontMatrix - El propósito de setFontMatrix CairoContext::setFontOptions - El propósito de setFontOptions CairoContext::setFontSize - El propósito de setFontSize CairoContext::setLineCap - El propósito de setLineCap CairoContext::setLineJoin - El propósito de setLineJoin CairoContext::setLineWidth - El propósito de setLineWidth CairoContext::setMatrix - El propósito de setMatrix CairoContext::setMiterLimit - El propósito de setMiterLimit CairoContext::setOperator - El propósito de setOperator CairoContext::setScaledFont - El propósito de setScaledFont CairoContext::setSource - El propósito de setSource CairoContext::setSourceRGB - El propósito de setSourceRGB CairoContext::setSourceRGBA - El propósito de setSourceRGBA CairoContext::setSourceSurface - El propósito de setSourceSurface CairoContext::setTolerance - El propósito de setTolerance CairoContext::showPage - El propósito de showPage CairoContext::showText - El propósito de showText CairoContext::status - El propósito de status CairoContext::stroke - El propósito de stroke CairoContext::strokeExtents - El propósito de strokeExtents CairoContext::strokePreserve - El propósito de strokePreserve CairoContext::textExtents - El propósito de textExtents CairoContext::textPath - El propósito de textPath CairoContext::transform - El propósito de transform CairoContext::translate - El propósito de translate CairoContext::userToDevice - El propósito de userToDevice CairoContext::userToDeviceDistance - El propósito de userToDeviceDistance CairoContext::__construct - Crea un nuevo CairoContext CairoFontFace::getType - Recupera el tipo de familia de fuentes CairoFontFace::status - Compruba errores de CairoFontFace CairoFontFace::__construct - Crea un nuevo objeto CairoFontFace CairoFontOptions::equal - El propósito de equal CairoFontOptions::getAntialias - El propósito de getAntialias CairoFontOptions::getHintMetrics - El propósito de getHintMetrics CairoFontOptions::getHintStyle - El propósito de getHintStyle CairoFontOptions::getSubpixelOrder - El propósito de getSubpixelOrder CairoFontOptions::hash - El propósito de hash CairoFontOptions::merge - El propósito de merge CairoFontOptions::setAntialias - El propósito de setAntialias CairoFontOptions::setHintMetrics - El propósito de setHintMetrics CairoFontOptions::setHintStyle - El propósito de setHintStyle CairoFontOptions::setSubpixelOrder - El propósito de setSubpixelOrder CairoFontOptions::status - El propósito de status CairoFontOptions::__construct - El propósito de __construct CairoFormat::strideForWidth - Proporciona un intervalo de paso apropiado a usar CairoGradientPattern::addColorStopRgb - El propósito de addColorStopRgb CairoGradientPattern::addColorStopRgba - El propósito de addColorStopRgba CairoGradientPattern::getColorStopCount - El propósito de getColorStopCount CairoGradientPattern::getColorStopRgba - El propósito de getColorStopRgba CairoGradientPattern::getExtend - El propósito de getExtend CairoGradientPattern::setExtend - El propósito de setExtend CairoImageSurface::createForData - El propósito de createForData CairoImageSurface::createFromPng - Crea una nueva CairoImageSurface desde un archivo de imagen png CairoImageSurface::getData - Obtiene la información de la imagen como cadena CairoImageSurface::getFormat - Obtener el formato de imagen CairoImageSurface::getHeight - Recupera el alto del CairoImageSurface CairoImageSurface::getStride - El propósito de getStride CairoImageSurface::getWidth - Recupera el ancho del CairoImageSurface CairoImageSurface::__construct - Crea una nueva CairoImageSurface CairoLinearGradient::getPoints - El propósito de getPoints CairoLinearGradient::__construct - El propósito de __construct CairoMatrix::initIdentity - Crea una nueva matriz de identidad CairoMatrix::initRotate - Crea una nueva matriz rotada CairoMatrix::initScale - Crea una nueva matriz de escala CairoMatrix::initTranslate - Crea una nueva matriz de traducción CairoMatrix::invert - El propósito de invert CairoMatrix::multiply - El propósito de multiply CairoMatrix::rotate - El propósito de rotate CairoMatrix::scale - Aplica escala a una matriz CairoMatrix::transformDistance - El propósito de transformDistance CairoMatrix::transformPoint - El propósito de transformPoint CairoMatrix::translate - El propósito de translate CairoMatrix::__construct - Crea un nuevo objeto CairoMatrix CairoPattern::getMatrix - El propósito de getMatrix CairoPattern::getType - El propósito de getType CairoPattern::setMatrix - El propósito de setMatrix CairoPattern::status - El propósito de status CairoPattern::__construct - El propósito de __construct CairoPdfSurface::setSize - El propósito de setSize CairoPdfSurface::__construct - El propósito de __construct CairoPsSurface::dscBeginPageSetup - El propósito de dscBeginPageSetup CairoPsSurface::dscBeginSetup - El propósito de dscBeginSetup CairoPsSurface::dscComment - El propósito de dscComment CairoPsSurface::getEps - El propósito de getEps CairoPsSurface::getLevels - El propósito de getLevels CairoPsSurface::levelToString - El propósito de levelToString CairoPsSurface::restrictToLevel - El propósito de restrictToLevel CairoPsSurface::setEps - El propósito de setEps CairoPsSurface::setSize - El propósito de setSize CairoPsSurface::__construct - El propósito de __construct CairoRadialGradient::getCircles - El propósito de getCircles CairoRadialGradient::__construct - El propósito de __construct CairoScaledFont::extents - El propósito de extents CairoScaledFont::getCtm - El propósito de getCtm CairoScaledFont::getFontFace - El propósito de getFontFace CairoScaledFont::getFontMatrix - El propósito de getFontMatrix CairoScaledFont::getFontOptions - El propósito de getFontOptions CairoScaledFont::getScaleMatrix - El propósito de getScaleMatrix CairoScaledFont::getType - El propósito de getType CairoScaledFont::glyphExtents - El propósito de glyphExtents CairoScaledFont::status - El propósito de status CairoScaledFont::textExtents - El propósito de textExtents CairoScaledFont::__construct - El propósito de __construct CairoSolidPattern::getRgba - El propósito de getRgba CairoSolidPattern::__construct - El propósito de __construct CairoSurface::copyPage - El propósito de copyPage CairoSurface::createSimilar - El propósito de createSimilar CairoSurface::finish - El propósito de finish CairoSurface::flush - El propósito de flush CairoSurface::getContent - El propósito de getContent CairoSurface::getDeviceOffset - El propósito de getDeviceOffset CairoSurface::getFontOptions - El propósito de getFontOptions CairoSurface::getType - El propósito de getType CairoSurface::markDirty - El propósito de markDirty CairoSurface::markDirtyRectangle - El propósito de markDirtyRectangle CairoSurface::setDeviceOffset - El propósito de setDeviceOffset CairoSurface::setFallbackResolution - El propósito de setFallbackResolution CairoSurface::showPage - El propósito de showPage CairoSurface::status - El propósito de status CairoSurface::writeToPng - El propósito de writeToPng CairoSurface::__construct - El propósito de __construct CairoSurfacePattern::getExtend - El propósito de getExtend CairoSurfacePattern::getFilter - El propósito de getFilter CairoSurfacePattern::getSurface - El propósito de getSurface CairoSurfacePattern::setExtend - El propósito de setExtend CairoSurfacePattern::setFilter - El propósito de setFilter CairoSurfacePattern::__construct - El propósito de __construct CairoSvgSurface::getVersions - Usado para recuperar una lista de versiones de SVG soportadas DIFERENCIAS ENTRE JAVA Y JAVASCRIPT Como hemos visto, JavaScript es un lenguaje de programación para desarrollos web que normalmente usaremos del lado del cliente (es decir, que se ejecuta en el PC del usuario). Muchas veces nos han planteado la pregunta: ¿es JavaScript y Java lo mismo? ¿Por qué tienen nombres tan similares? logo javascript Java y JavaScript son dos lenguajes de programación con un nombre parecido y algunas similitudes en algunos aspectos, pero que en el fondo son dos lenguajes completamente independientes y completamente distintos. Una persona puede saber mucho de JavaScript y no tener “ni idea” de Java, y al revés. Si son distintos, ¿por qué tienen un nombre tan parecido? La causa de esta similitud en los nombres se debe a el origen de JavaScript. Inicialmente fue desarrollado por la empresa Netscape en 1995 con el nombre de LiveScript. Posteriormente pasó a llamarse JavaScript quizás tratando de aprovechar que Java era un lenguaje de programación de gran popularidad y que un nombre similar podía hacer que el nuevo lenguaje fuera atractivo. Pero salvando algunas similitudes, ambos lenguajes son bien distintos. Su principal parecido podemos decir que es el nombre y algunos aspectos de sintaxis, ya que su finalidad y filosofía son muy distintos. A continuación indicamos algunas similitudes y diferencias entre uno y otro lenguaje: Java JavaScript Es un lenguaje de programación de propósito general, utilizado tanto en aplicaciones tradicionales de computadores como en desarrollos web. Es un lenguaje de programación de propósito específico (desarrollos web) Es un lenguaje que requiere de compilación (traducción previa a código máquina antes de ser ejecutado). Es un lenguaje que no requiere de compilación al ser interpretado directamente por los navegadores. Es un lenguaje que se puede considerar pesado, potente y robusto en el sentido de que permite hacer de todo con un gran control. Es un lenguaje que se puede considerar ligero, ágil y poco robusto en el sentido de que no permite hacer todo lo que permiten otros lenguajes. Es un lenguaje bajo la filosofía o paradigma de orientación a objetos completamente. Es un lenguaje no clasificable bajo un paradigma concreto y admite algunas formas de programación no admitidas por Java. Se puede utilizar tanto del lado del servidor como del lado del cliente. Tiene su uso principal del lado del servidor. Se puede utilizar tanto del lado del servidor como del lado del cliente. Tiene su uso principal del lado del cliente. Su sintaxis está inspirada en la sintaxis del lenguaje de programación C Su sintaxis también está inspirada en la sintaxis del lenguaje de programación C Requiere de un kit de desarrollo y máquina virtual Java para poder programar en él. No requiere nada específico para poder programar en él (únicamente un navegador web para ver los resultados y un editor de texto para escribir el código). Es un lenguaje fuertemente tipado: las variables tienen un tipo declarado y no pueden cambiar el tipo de contenido que almacenan. Es un lenguaje débilmente tipado: las variables pueden no ser de un tipo específico y cambiar el tipo de contenido que almacenan. Es un lenguaje con más capacidades y más complejo que JavaScript. Es un lenguaje con menos capacidades y menos complejo que Java. Si estás dudando si te conviene estudiar Java o estudiar JavaScript te recomendamos lo siguiente: - Si quieres orientarte específicamente a los desarrollos web estudia JavaScript. - Si quieres formarte integralmente como programador y no conoces ningún lenguaje orientado a objetos, estudia primero Java y luego JavaScript. En este curso nos centramos en el estudio de JavaScript en el contexto de los desarrollos web. Si estás interesado en un curso de Java puedes acceder a él en esta dirección web: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188 JAVASCRIPT Y HTML, CSS, PHP… A veces nos encontraremos que se puede lograr un mismo efecto usando HTML, usando CSS ó usando un lenguaje de programación. ¿Por qué tantas formas para hacer una misma cosa? ¿Dónde está la frontera entre cada lenguaje? Esta pregunta no es de fácil respuesta. Vamos a ver con un ejemplo lo que puede ocurrir para algo tan sencillo como aplicar algunos efectos a un texto. No obstante, ten en cuenta que este ejemplo relativo a texto podría aplicarse a otros conceptos como bordes, márgenes, animaciones, etc. El lenguaje HTML permite aplicar algunos efectos visuales al texto. Escribe o copia este código y guárdalo en un archivo de nombre ejemplo1.html. <!DOCTYPE html> <html> <head> <title>Ejemplo HTML aprenderaprogramar.com</title> <meta name="tipo_contenido" content="text/html;" http-equiv="content-type" charset="utf-8"> </head> <body> <p>Negrita: <strong>Quiero aprender a programar</strong></p> <p>Itálica: <i>Quiero aprender a programar</i></p> <p>Tachado: <strike>Quiero aprender a programar</strike></p> <p>Color fuente: <font color ="green">Quiero aprender a programar</font></p> </body> </html> Con Javascript podemos hacer algo parecido. Escribe o copia este código y guárdalo en un archivo de nombre ejemplo2.html: <!DOCTYPE html> <html> <head> <title>Ejemplo HTML aprenderaprogramar.com</title> <meta name="tipo_contenido" content="text/html;" http-equiv="content-type" charset="utf-8"> </head> <body> <script> var txt = "Quiero aprender a programar"; document.write("<p>Negrita: " + txt.bold() + "</p>"); document.write("<p>Itálica: " + txt.italics() + "</p>"); document.write("<p>Tachado: " + txt.strike() + "</p>"); document.write("<p>Color fuente: " + txt.fontcolor("green") + "</p>"); </script> </body> </html> Y por último en vez de aplicar Javascript o simple HTML, podemos usar CSS. Escribe o copia este código y guárdalo en un archivo de nombre ejemplo3.html: <!DOCTYPE html> <html> <head> <title>Ejemplo HTML aprenderaprogramar.com</title> <meta name="tipo_contenido" content="text/html;" http-equiv="content-type" charset="utf-8"> <style type="text/css"> #negrita{font-weight:bold;} #italica{font-style:italic;} #tachado{text-decoration: line-through;} #verde{color:green;} </style> </head> <body> <p>Negrita: <span id="negrita">Quiero aprender a programar</span></p> <p>Italica: <span id="italica">Quiero aprender a programar</span></p> <p>Tachado: <span id="tachado">Quiero aprender a programar</span></p> <p>Color fuente: <span id="verde">Quiero aprender a programar</span></p> </body> </html> Haz doble click sobre cada uno de los archivos para visualizar el resultado en un navegador. El resultado que obtenemos es algo similar a esto: efectos css El único código que debemos entender por el momento es el correspondiente al ejemplo 1 y al ejemplo 3, ya que debemos conocer HTML y CSS para seguir este curso. El código del ejemplo 2 no te preocupes si no lo entiendes ya que el objetivo ahora no es comprender ese código, sino simplemente ver cómo podemos alcanzar un mismo objetivo usando distintos lenguajes como HTML, Javascript ó CSS. Además si nos fijamos, el código Javascript y el código CSS está dentro de un documento HTML (aunque podrían estar en archivos separados). Todo esto nos puede llevar a preguntarnos: ¿Por qué se entremezclan unos lenguajes con otros? La respuesta sería histórica y técnica: HTML se convirtió en la forma de crear páginas web, pero tenía muchas limitaciones. En un momento dado, se consideró que entremezclar (embeber) lenguajes entre sí podía ser una buena opción técnica para resolver problemas o hacer cosas que no era posible o conveniente hacer con HTML. Así, podemos embeber Javascript en HTML ó embeber CSS en HTML, o embeber HTML en PHP, etc. Por ello a veces ocurre que no hay una frontera clara entre lenguajes de programación, HTML y CSS. Esto, que puede resultar un tanto confuso inicialmente, se va convirtiendo en “comprensible” a medida que se trabaja y se aprende más sobre estos lenguajes. Por otro lado, ¿por qué tantas vías distintas para hacer algo cuando quizás que solo hubiera una manera de poner el texto en negrita, o una sola manera de poner un color de fuente, sería más simple? Para esto podemos citar varios motivos: a) Motivos históricos: a veces las cosas se empezaron a hacer de una manera y luego se pensó que era mejor hacerlas de otra. Sin embargo, para evitar que las páginas web existentes dejaran de funcionar, se siguieron permitiendo formas de hacer las cosas “anticuadas”. Por ejemplo la etiqueta <strike> … </strike> en HTML se considera deprecated (obsoleta, de uso no recomendado) en HTML 4.01 y no está admitida en HTML 5. Sin embargo, se sigue usando. Muchas formas de hacer las cosas se admiten aunque no estén recomendadas. b) Motivos de independencia de tecnologías: HTML es una cosa y Javascript es otra, aunque en la práctica nos encontremos con que Javascript se puede “entremezclar” (embeber) en HTML. Podríamos hacer cosas en Javascript y no querer usar otro lenguaje, es decir, podríamos tratar de hacer cosas independientes sin “entremezclar” tecnologías. Por ello lenguajes como Javascript ó PHP incorporan posibilidades para hacer cosas que ya se pueden hacer de otra manera. De esta forma tienen la potencialidad de ser más independientes. c) Motivos de políticas de desarrollo y estándares: quizás no te lo hayas preguntado nunca, pero conviene tener al menos una orientación al respecto: ¿Quién define qué es un lenguaje como HTML, CSS, PHP, cómo se debe escribir, qué resultado debe generar cada etiqueta o instrucción, etc.? En general detrás de los lenguajes, aunque algunos fueron creados por personas individuales, hay empresas, comunidades de desarrollo, asociaciones, consorcios internacionales, comités, etc. En ocasiones un grupo de personas no está de acuerdo con la forma en que se está creando una especificación del lenguaje y forman grupos de trabajo alternativos que definen estándares alternativos. A veces triunfa un estándar y el otro se desecha, pero otras veces conviven distintos estándares que permiten hacer las cosas de distintas maneras. Para los creadores de páginas web esto resulta negativo, pero ¡así es la vida! d) Otros motivos: podríamos abundar en el por qué de que las cosas sean como son, pero con tener una idea general nos basta. Acostúmbrate a pensar que los desarrollos web no son matemáticas. Las cosas se pueden hacer de muchas maneras, y de hecho muchas veces se hacen “de mala manera” por desconocimiento, por prisas, o por ser más fácil. Acostúmbrate a pensar que los desarrollos web usan distintos lenguajes que muchas veces se entremezclan entre sí hasta el punto de ser difícil distinguir en qué corresponde a un lenguaje y qué corresponde a otro. Hay lenguajes comunes en los desarrollos web como HTML, pero por ejemplo en cuanto a lenguajes de programación no todos los programadores usan el mismo. Acostúmbrate a encontrarte con que a veces las cosas no funcionan como una esperaría que lo hicieran, no debido a que se haya escrito mal el código o usado mal una instrucción, sino debido a que en el mundo de internet existen distintos estándares y distintas versiones. A veces aunque nos esforcemos porque todo se vea como nosotros esperamos en todos los navegadores o dispositivos, es difícil conseguirlo. Es un poco caótico, pero es así. En este curso más que aprendernos todas las instrucciones, estándares, etc. vamos a tratar de ser capaces de razonar el por qué de las cosas, y a tratar de esforzarnos por saber cómo generar código JavaScript limpio, bien estructurado y de calidad.
0 notes