0

仕事中にこの迷惑なメッセージに遭遇しました

Strict Standards: Only variables should be passed by reference in G:\xampp\htdocs\MyProject\ZendSkeletonApplication\module\Admission\src\Admission\Controller\AdmissionController.php on line 107

私のコード

$consoldatedCities='';

array_walk_recursive($StateCityHash, function($cityName,$cityId) use(&$consoldatedCities){$consoldatedCities[$cityId] = $cityName; }); // line 107

これは、多次元配列を単純な配列に変換することです

しかし、コードは期待どおりに機能します..この問題を解決する方法を誰か教えてもらえますか

4

1 に答える 1

0

ここhttp://php.net/manual/en/language.references.pass.phpには、「関数呼び出しには参照記号はありません-関数定義のみです」と書かれています。そこで関数呼び出しコードから「&」を削除してみて、メッセージが削除されるかどうかを確認してください。

- -編集 - -

このスレッドを見ると、「厳格な基準: 変数のみを参照渡しする必要があります」というエラーが表示されます

配列 walk 関数に渡す前に、コールバック関数を変数に保存してみてください。

$consoldatedCities=array();

$callbackFcn= 
   function($cityName,$cityId) use(&$consoldatedCities)
   {
      $consoldatedCities[$cityId] = $cityName; 
   };

array_walk_recursive($StateCityHash, $callbackFcn);
于 2013-08-12T17:49:09.467 に答える