从php手册示例(返回字节)无法理解这个功能

时间:2015-05-18 18:08:28

标签: php function return

我在php手册中看过这个函数,但我无法理解它是如何工作的,该函数应该将文件大小的值更改为字节。 这是整个例子

<?php
/*
Our php.ini contains the following settings:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    switch($last) {
        // The 'G' modifier is available since PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

我无法理解的是这一行

$last = strtolower($val[strlen($val)-1]);
什么叫'G'修饰符,什么是$ last变量用于? 提前谢谢,

1 个答案:

答案 0 :(得分:0)

$last = strtolower($val[strlen($val)-1]);

该行代码获取$val中的最后一个字符,将其转换为小写,然后将其放入$last变量中。然后在switch语句中使用该变量将乘数应用于输入值。

有关可能对您有用的一些背景信息,请参阅post_max_size