-2

重複の可能性:
解析エラー:構文エラー、予期しないT_FUNCTION行10?ヘルプ?
参照-このエラーはPHPで何を意味しますか?

これはエラーの原因となるコードです。

$remaining = array_filter($allmodels, function ($var) use ($existmodels) {
                return !in_array($var, $existmodels);
        });

コードのロジックは次のとおりです(以下はすべて配列です)

$remaining = $allmodels - $existmodels;

私のPHPバージョンはサーバーで古くなっていると思います。それは問題ですか。同様のコードスニペットを作成するにはどうすればよいですか?

ありがとう

4

3 に答える 3

3

注:もちろん、グローバルは良い習慣ではありません

function fil($var) {
 global $existmodels;
 return !in_array($var, $existmodels);
}

$remaining = array_filter($allmodels, 'fil');
于 2012-10-25T08:18:25.907 に答える
2

私はOOプログラミングの大ファンなので、楽しみのために:

class MyArrayOperations
{
  private $base;

  public function __construct(array $base)
  {
    $this->base = $base;
  }

  public function dif (array $vars ) 
  {
    $result = array();
    foreach ( $this->base as $base )
    if(!in_array($base, $vars))
      $result[] = $base;
    return $result;
  }

$result = (new MyArrayOperations($allmodels))->dif($existmodels);

クラスを別のファイルに入れて再利用し、ワンライナーを使用するだけです。もちろん、このクラスは便利な配列操作で拡張できます。

アップデート

oneliner は php 5.4+ でのみ機能することに気付いたので、古いバージョンではこれを使用します。

$arrayops = new MyArrayOperations($allmodels);
$result = $arrayops->dif($existmodels);

結果はCodepadになります。

于 2012-10-25T08:27:47.407 に答える
0

以下のコードを htaccess に追加すると問題が解決しました

# Use PHP 5.3
AddType application/x-httpd-php53 .php
于 2012-10-25T08:32:55.713 に答える