Тема: Возникло несколько вопросов при изучении 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, правильно я понимаю?