Можно ли сделать задание по условному выражению в php? - PullRequest
5 голосов
/ 04 февраля 2010

Можете ли вы сделать назначение условного оператора в php следующим образом:

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

Ответы [ 4 ]

8 голосов
/ 04 февраля 2010

Да.

Я думаю, что наиболее распространенный сценарий использования этого - использование 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), очевидно.

6 голосов
/ 04 февраля 2010

Да.

Честно, почему бы тебе не попробовать? Языки, на которых вам не разрешено делать подобные вещи, обычно генерируют ошибки компилятора / парсера.

PHP берет большинство своих основных синтаксических элементов из C, что означает, что каждое присваивание возвращает значение. Поэтому это действительно.

2 голосов
/ 04 февраля 2010

Да, вы можете сделать это.

Если вы спрашиваете, потому что пытались это сделать и получили сумасшедшую ошибку, попробуйте сделать siteName_err допустимым именем переменной, поставив перед ним знак доллара $.

0 голосов
/ 04 февраля 2010

Да, конечно, и вы можете сделать то же самое для конструкций while

...