Разница между типами массивов - php

Есть ли разница между этим синтаксисом массива?

поступает от dd()

$array:3 = [
  0 => "email"
  1 => " email"
  2 => " email"
]

против

$array = ['email', 'email', 'email']

Я делаю это:

$email->bcc($bccEmailsArray);, который является 1-м фрагментом кода, и он не работает. Если я вставлю второй фрагмент кода, он сработает.

Что значит «не работает»?

Goodbye StackExchange 13.09.2018 20:53

Единственное практическое различие, которое я вижу, заключается в том, что первый массив имеет значения с пробелами, а второй - нет.

Stratadox 13.09.2018 20:54

Да, и у части array:3 недопустимый синтаксис.

Stratadox 13.09.2018 20:54

Первый на самом деле не похож на PHP-код. Похоже на выход print_r. Можете ли вы показать, как вы их используете в своем коде?

Don't Panic 13.09.2018 21:04

У первого нет разделителей запятой ... пробелы не интерпретируются в PHP, как в таких языках, как Python

kchason 13.09.2018 21:40

Поскольку мы не знаем, какую библиотеку вы используете для отправки писем, мы не можем дать на это ответ.

DarkBee 13.09.2018 21:43

Я должен был написать сообщение, что первый пример исходит от dd ();

Austin Hunter 13.09.2018 22:59
0
7
83
2

Ответы 2

Основное отличие в том, что первый образец не является действительным PHP-кодом.

Часть array:3 делает его недействительным.

Действительные примеры были бы

$array = [
  0 => "email",
  1 => "email",
  2 => "email"
];

а также

$array = ['email', 'email', 'email'];

Помимо того, что в первом примере некоторые «письма» начинаются с пробела, оба массива равны. Если вы не укажете ключи явно, элементы будут нумероваться, начиная с 0.

Для получения дополнительной информации вы можете обратиться к документация.

ты должен использовать запятую

Susana Santos 13.09.2018 22:50

Я должен был написать сообщение, что первый пример исходит от dd ()

Austin Hunter 13.09.2018 22:59

@AustinHunter, можешь тогда объяснить, что ты имеешь в виду под it doesn't work? Возникла ошибка, что-то происходит, чего-то не происходит?

mleko 14.09.2018 09:51

Как и то, что говорят другие, ваша проблема - просто синтаксис. из-за dd () появляется? dd () var_dump () и т. д. предназначены для отладки.

$array:3 = [     // :3 is not valid
  0 => "email"   //no commas
  1 => " email"  //no commas + extra spaces in emails
  2 => " email"  //no commas + extra spaces in emails
]

Исправьте это:

$array = [
  0 => "email",
  1 => "email",
  2 => "email",
]

или к любому из них:

$array = [0=>"email",1 => "email",2 => "email"];
$array = array(0=>"email", 1=>"email", 2=>"email");

или просто:

$array = array("email","email","email");

так как это просто создаст ключи по умолчанию:

array(3) {
  [0]=>
  string(5) "email"
  [1]=>
  string(5) "email"
  [2]=>
  string(5) "email"
}

Следовательно, при правильном синтаксисе разницы между ними нет.

Больше информации:

Спасибо, у меня мозг мертв сегодня, исправляю это сейчас ... это должен быть array ()

Mike Q 13.09.2018 22:38

Я должен был написать сообщение, что первый пример исходит от dd ()

Austin Hunter 13.09.2018 22:59

@AustinHunter хорошо, тогда вам просто нужно удалить dd () из вашего кода, ??

Mike Q 13.09.2018 23:16

Другие вопросы по теме