2

これが私がやろうとしていることです:

$errmsg_1 = 'Please make changes to your post';
$errmsg_2 = 'Please make changes to your post image';

$error = 1;

echo $errmsg_.$error; //'Please make changes to your post';

何も機能しません、そして私がエコーしなければならないこれらのような多くのエラーメッセージがあります。

誰か助けてもらえますか?

4

10 に答える 10

11

あなたが求めているものは変数変数として知られています-詳細についてはhttp://uk.php.net/manual/en/language.variables.variable.phpを参照してください。

しかし、そうしないでください。それは非常に貧弱なコーディング慣行と考えられています。

実際に必要なのは配列です。

$errmsg = array(
    'Please make changes to your post',       //this will be $errmsg[0]
    'Please make changes to your post image'  //this will be $errmsg[1]
);

$error = 0;   //nb: arrays start at item number 0, not 1.

echo $errmsg[$error];

これは、変数変数をいじるよりもはるかに優れたコーディング手法です。

于 2012-09-14T15:27:57.070 に答える
6

エラーメッセージを配列に格納します。

$errmsg[1] = 'Please make changes to your post';
$errmsg[2] = 'Please make changes to your post image';

// and so on

$error = 1;

echo $errmsg[$error];
于 2012-09-14T15:27:47.300 に答える
4

試す

echo {'$errmsg_' . $error};

あなたはこれを本当にかなり間違ってやっていますが。代わりに配列を使用する必要があります。変数名を連結することは悪い習慣であり、厄介な/読めない/壊れたコードにつながります。配列を使用すると、次のように機能します。

$errors = array(
    'Please make changes to your post',
    'Please make changes to your post image'
);

echo $errors[$error];

$error配列は0インデックスベースであるため、0から始まることに注意してください。

于 2012-09-14T15:26:58.300 に答える
3

頭のてっぺんからあなたが欲しいと思いますが$errmsg_{$error}、私は今それをテスト/再確認する立場にありません。

于 2012-09-14T15:26:24.670 に答える
1

これは機能するはずです:

$errmsg_1 = 'Please make changes to your post';
$errmsg_2 = 'Please make changes to your post image';

$error = 1;

echo ${'errmsg_ ' . $error};
于 2012-09-14T15:27:23.613 に答える
0

不快感はありませんが、あなたがしているのは悪いデザインです。

小さいですが、完璧な解決策はエラーを配列として保存することではありません。

$errors = array('Please make changes to your post', 'Please make changes to your post image');
$error = 0;
echo $errors[$error];
于 2012-09-14T15:28:18.007 に答える
0

これを使ってみてください${$errmsg_.$error}

これは変数変数です:http://php.net/manual/en/language.variables.variable.php

于 2012-09-14T15:28:47.847 に答える
0

あなたはこれを行おうとしています:

function errorMsg($code)
{
  $msg;
  switch($code)
  {
  case 1:
    $msg = 'Please make changes to your post';
    break;

  case 2:
    $msg = 'Please make changes to your post image';
    break;
  }
  return $msg;
}

echo errorMsg(1);
于 2012-09-14T15:29:23.200 に答える
0
$error_msg = 'Please make changes to your ';
$error[1] = 'post';
$error[2] = 'post image';

for($i=1; $i<=count($error); $i++)
 echo $error_msg . $error[$i];
于 2012-09-14T15:37:23.580 に答える
0

配列を使用します。後で簡単に参照できるようにインデックスを保持し、エラーメッセージを簡単に変更してAPIを整理します。

$errmsg = array(
    1 => 'Please make changes to your post',
    2 => 'Please make changes to your post image'
);

$error = 1;

echo $errmsg[$error]; //'Please make changes to your post';
于 2012-09-14T15:57:33.780 に答える