0

関数から $keysList 配列を取得しようとしていますが、どこかで問題が発生しているようです。エラーが発生します:

Passed Notice: Uninitialized string offset: 2 in C:\web\apache\htdocs\dev\case2.php on line 40 Notice: Uninitialized string offset: 1 in C:\web\apache\htdocs\dev\case2.php on line 40 Notice: Uninitialized string offset: 0 in C:\web\apache\htdocs\dev\case2.php on line 40 Output = a , a and a .

これを正しくする方法は?

<?php

$catHandle = "addCat";

function validCatKeys($catHandle,$keysList)
{

    switch($catHandle){

    case "addCat":

            $listCountryCode = 'US';
            $listUserName    = 'Norman';
            $listUserId      = '1';
            $keysList        = array($listCountryCode,$listUserName,$listUserId);
            return true;
        break;

    case "addSubCat":

        break;

    case "addElm":

        break;

    default:
       return false;
    }


}



if(validCatKeys($catHandle,$keysList = ''))
{

    echo 'Passed';
    list($a, $b, $c) = $keysList;
    echo "Output =  a $a, a $b and a $c.";

}else{echo 'Failed';
}



?>
4

3 に答える 3

1

関数定義で参照渡しとして変数を定義$keysListします。

function validCatKeys($catHandle,&$keysList)

( に注意してください&)

$keysListこれにより、関数の外部で使用可能な変数への内部変更が行われます。

于 2013-05-01T08:25:50.300 に答える