PHP

PHP

misaki

String

last index:

$var[strlen($var-1)];





Array

$arr = ['one', 'two', 'three'];


Добавить:

$arr[] = 'four';

Изменить:

$arr[1] = 'four';

Удалить:

unset($arr[1]);


Объединение массивов:

[1, 2, 3] + [4, 5, 6];


Сравнение:

[] == []

[1] != [2]


Функции:

sizeof($arr); - размер массива

in_array('apple', $arr); - проверка, существует ли элемент в массиве

empty($arr); - проверяет, пустой ли массив

end($arr); - последний элемент массива

print_r($arr); - вывод массива


function myMax($arr)
{
    if(empty($arr))
    {
        return 'arr is empty';
    }


    $max = $arr[0];
    foreach ($arr as $item) {
        if ($item > $max)
        {
            $max = $item;
        }
    }
    return $max;
}




Ассоциативный массив

$arr = [
    ['one'      => '1'],
    ['two'      => '2'],
    ['three'    => '4'],
];


// достать элементы многомерного массива
for($i=0; $i<sizeof($arr); $i++)
{
    foreach ($arr[$i] as $item => $value) {
        echo $item . ': ' . $value . '<br>';
    }
}



Преобразование типов

// неявное преобразование типов
$foo = '3';
$foo += 2;
echo $foo . '<br>';
$foo += 1.3;
echo $foo . '<br>';
$foo = 5 + "15 little piggies";
echo $foo . '<br>';



// явное
$foo = 1;
$bar = (boolean) $foo;

var_dump($bar);




Построение абстракций


// лямбда-функции
$square = function($sum)
{
    return $sum * $sum;
};

// функция высшего порядка
$sumOfSquare = function ($num_1, $num_2) use ($square)
{
    return $square($num_1) + $square($num_2);
};

//echo $sumOfSquare($square(3), 5);



// линейно-рекурсивный процесс
function myPow($base, $exp)
{
    if ($exp==1) return $base;
    return $base * myPow($base, $exp-1);
}

//echo myPow(4,3);



// линейно-итеративный процесс
function myPowClone($base, $exp)
{
    $powIter = function ($base, $exp, $acc) use (&$powIter)
    {
        if($exp==1) {return $acc;}
        $powIter($base, $exp-1, $acc*$base);
    };
    return $powIter($base, $exp, 1);
}

// echo myPow(4,2);



// сумма чисел от a до b
function sumIntegers ($a, $b)
{
    if($a > $b) return 0;
    return $a + sumIntegers($a+1, $b);
};

//echo sumIntegers(1,8);



// сумма кубов
function sumCubes($a, $b)
{
    if($a > $b) return 0;
    return ($a * $a * $a) + sumCubes($a+1, $b);
}

//echo sumCubes(2,3);



// обобщенная функция вычисления суммы последовательности от a до b
// (чисел, квадратов, кубов и т.д.)
function sum ($a, $b, $func)
{
    if($a > $b) return 0;
    return $func($a) + sum($a+1, $b, $func);
}

echo sum(1,5,function ($x){return $x*$x*$x;});



















Report Page