1

Тема: Возникло несколько вопросов при изучении php.

Здравствуйте! Начал изучать php, возникло несколько вопросов.

1.При решении лабораторной работы, задание которой звучит так: Вывести на экран максимально допустимый объём данных в байтах который может передать форма на сервер. У меня получился вот такой код:

<?php
    $size = ini_get('post_max_size');//16M
    $size = $size * 1024 * 1024;
    $size = $size.' bytes';
    echo $size;
?>

А в решении автора видеокурса, вот такой код:

<?php
    $size = ini_get('post_max_size');//16M
    $letter = $size{strlen($size) - 1};
    $size = (integer)$size;
    switch($letter):
        case G:
            $size *= 1024 * 1024 * 1024;
        break;
        case M:
            $size *= 1024 * 1024;
        break;
        case K:
            $size *= 1024;
        break;
    endswitch;
    echo 'POST_MAX_SIZE = '.$size.' bytes';
?>

В обоих случаях результат один и тот же. Не подскажите мне, верно ли моё решение? Если нет, то в почему так нельзя? И какие могут возникнуть проблемы в моём коде, если он неверен?

2.В настройках моего веб-сервера, директива post_max_size имеет значение 16М. В данном ниже куске кода, переменная $size принимает значение 1, а не 16 как должна. Не могли бы вы мне объяснить в чём проблема?

<?php
    $size = ini_get('post_max_size');//16M
    $size = settype($size, integer);
        echo $size;
?>

А при неявной конвертации типов все нормально работает:

<?php
    $size = ini_get('post_max_size');//16M
    $size = (integer)$size;
        echo $size;
?>

3.Какой будет номер у элемента смешанного массива, если все элементы кроме него про именованы, а он нет. Если я правильно понял, то элемент массива принимает номер на единицу больший чем максимальный номер следующий до него, но тут то имена а номеров нету. Номер будет 0, правильно я понимаю?

2

Re: Возникло несколько вопросов при изучении php.

Надо отрезать букву после числа и уже затем ими манипулировать, как и сделано во втором примере.

artbolnix пишет:

Если я правильно понял, то элемент массива принимает номер на единицу больший чем максимальный номер

Все верно. Только в ваших примерах массивов я не вижу.

ВКонтакте Facebook Twitter

3

Re: Возникло несколько вопросов при изучении php.

Спасибо за помощь, вопрос про массивы отдельно, от первых двух.

4

Re: Возникло несколько вопросов при изучении php.

artbolnix пишет:

Спасибо за помощь, вопрос про массивы отдельно, от первых двух.

Именованные и порядковые массивы смешивать не надо.

ВКонтакте Facebook Twitter

5

Re: Возникло несколько вопросов при изучении php.

Спасибо. Буду знать.