5

次のように、php の条件文に割り当てを行うことができますか。

if(siteName_err = isValid("sitename", $_POST['sitename'], false))
{
    $siteName = $_POST['sitename'];
}
4

4 に答える 4

8

はい。

これの最も一般的な使用シナリオは、MySQL を使用する場合だと思います。例えば:

$result = mysql_query("SELECT username FROM user");
while ($user = mysql_fetch_assoc($result)) {
  echo $user['username'] . "\n";
}

これ$userは、割り当ての結果であるため機能します。つまり、割り当てに格納されているものは何でも、条件として使用されます。言い換えると、

var_dump($i = 5);

// is equivalent to

$i = 5;
var_dump($i);

int(5)明らかに、どちらも印刷されます。

于 2010-02-03T23:10:59.813 に答える
6

はい。

正直なところ、試してみませんか?この種のことを行うことが許可されていない言語では、通常、コンパイラ/パーサー エラーが生成されます。

PHP は、基本的な構文要素のほとんどを C から取り入れています。これには、すべての代入が値を返すことが含まれます。したがって、これは有効です。

于 2010-02-03T23:08:06.500 に答える
2

ええ、あなたはそれを行うことができます。

試してみてクレイジーなエラーが発生したために質問している場合は、変数名の前にsiteName_errドル記号を付けて、有効な変数名を作成してみてください$

于 2010-02-03T23:08:49.167 に答える
0

はい、もちろん、while 構文についても同じことができます

于 2010-02-03T23:10:14.887 に答える