PHP, Что за конструкция “$a=(array) $b” обозначает

226
21 июня 2017, 02:10

недано начал изучать Php, в скрипте встретил такую конструкцию

$a=(array) $b

не могу понять что она делает, объясните пожалуйста на пальцах.

Answer 1

Это приведение к типу, а именно приведение к типу array переменной $b. Такое может использоваться например в том случае, когда переменная $b содержит данные типа stdClass.

Answer 2

Это приведение типов. Обычно используется когда вам нужно получить массив, а на вход вам дают бог знает что.

function test($b) {
    $a = (array) $b;
    foreach ($a as $c) {
        echo "c=$c\n";
    }
}

С этим приведением типа функцию можно вызывать с одним аргументом так:

test(123);

И так:

test(array(123, 456));

Если же приведение типов не делать, то функция не сработает с ошибкой:

PHP Warning: Invalid argument supplied for foreach()
Answer 3

по поводу скалярных типов данных, если вы сделаете что-то вроде

$a = 777; // или $a = 'qwerty'; или $a = true;
$array = (array)$a;
var_dump($array);

то вам вернется массив, который содержит в качестве первого элемента вашу исходную переменную

array(1) {
[0]=>
bool(true) // или int(777) или string(qwerty)
}
READ ALSO
Как вывести нужные данные с массива PHP

Как вывести нужные данные с массива PHP

В общем, есть массив со следующим содержимым:

422
cURL вставить код перед </body>

cURL вставить код перед </body>

Получаю содержимое страницы с другого сайта с помощью cURLСтолкнулся с проблемой загрузки стилей если в пути нет доменного имени, решил проблему...

240
Вызов Google App Script из PHP

Вызов Google App Script из PHP

Код вызова скрипта выглядит следующим образом

309