PHP: присвоение значений переменной внутри оператора IF - PullRequest
3 голосов
/ 05 мая 2010

Мне было интересно, могу ли я присвоить значения переменной внутри оператора IF. Мой код выглядит следующим образом:

<?php
    if ((count($newArray) = array("hello", "world")) == 0) {
        // do something
    }
?>

Итак, я хочу присвоить массив переменной $ newArray, затем считать newArray и проверить, является ли он пустым массивом.

Я знаю, что могу сделать это в несколько строк, но мне было интересно, смогу ли я сделать это в одной строке

Ответы [ 3 ]

3 голосов
/ 05 мая 2010

Попробуйте это:

if(count($newArray = array("Hello", "world")) == 0) {
    ....
}

Я бы посоветовал против этого, так как это делает ваш код менее читабельным. И очень нелогично, поскольку вы знаете , что рассматриваемый массив содержит два значения. Но, возможно, вы имеете в виду что-то еще. :)

2 голосов
/ 05 мая 2010

Да, вы можете, вот так:

if(count($ary = array(1,2,3)))

Выполнение var_dump из $ary дает:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}
1 голос
/ 12 февраля 2013

На самом деле вам не нужно использовать счетчик внутри оператора if, потому что пустой массив в PHP считается ложным. См. PHP документацию .

Итак, ваш код может выглядеть так:

if (!$newArray = array("hello", "world")) {
    echo "newArray is empty";
}
...