簡體   English   中英

php語法,數組和錯誤

[英]php syntax, arrays and errors

為什么下面的代碼在php中給我一個錯誤?:

$b = array("1" => "2")["1"];

我得到的錯誤是Parse錯誤...

救命。

不幸的是,在PHP中,您需要這樣做:

$a = array("1" => "2");
$b = $a["1"];

感覺就像你的例子應該有效,因為它在其他語言中有用。 但這只是PHP的方式。

幾件事。 您無法在創建過程中立即從數組中提取數據,並且數值的鍵會自動轉換為整數,即使它們是字符串也是如此。

您可以使用函數為您執行此操作:

function Get($array, $key, $default = false)
{
    if (is_array($array) === true)
    {
        settype($key, 'array');

        foreach ($key as $value)
        {
            if (array_key_exists($value, $array) === false)
            {
                return $default;
            }

            $array = $array[$value];
        }

        return $array;
    }

    return $default;
}

並像這樣使用它:

$b = Get(array("1" => "2"), "1"); // 2

如果您不需要訪問多維數組,也可以使用這個較短的函數:

function Get($array, $key, $default = false)
{
    if (is_array($array) === true)
    {
        return (array_key_exists($value, $array) === true) ? $array[$value] : $default;
    }

    return $default;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM