«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/03/03 15:22:54  №1358534 1
image.png (216, 1920x1080)
1080x1920
Первый верхний вариант функции работает, а второй нижний нет! Что делать??? В чём причина?

(При вызове функции посередине)
Ответы: >>1358539 >>1359950
Аноним 2019/03/03 15:33:23  №1358539 2
>>1358534
В первом случае инфо это массивчик, а во втором объект?
Ответы: >>1358542
Аноним 2019/03/03 15:38:05  №1358542 3
>>1358539
хмм, походу на то.

Но тогда получается у меня $data - объект, а не в коим случае не объект?

В связи с этим, правильно ли я думаю, что если считывать json файл где всё сосредоточено в
{
//что то
}
то это объект, а если
[
// что то
]
то это массив?
Ответы: >>1358547 >>1358561 >>1359950
Аноним 2019/03/03 15:42:43  №1358547 4
>>1358542
fix:

не объект не массив
Аноним 2019/03/03 16:16:56  №1358561 5
>>1358542
Ну если ты обращаешься к данным через ->, то это признак того, что ты обращаешься к объекту.

В javascript можно обращаться к пустому объекту, просто создав его через {}. В PHP так делать нельзя, объект нужно создать через new, поэтому твой json (ты ведь его получаешь?) сначала нужно распарсить (превратить в массив) и потом уже только обращаться к нему.
Аноним 2019/03/06 02:34:13  №1359950 6
>>1358534

Ты передаешь массив, а пытаешься обращаться к его элементам через стрелку. Кто тебе сказал, что так можно? Это не JS, тут с массивами работают с помощью квадратных скобок, а стрелка для полей и методов объектов.

>>1358542

Прочти также целиком мануал по json_decode. Там написано, когда получается объект класса stdClass, а когда массив.

>>1358506

Не знаю. Где-то на хабре давно была статья с такой историей, можно ее поискать.

>>1358393

Не думал, что у файлообменника такая сила. Сейчас, вроде начинающие разработчики делают сокращатели ссылок, но это уже неприлично просто.

>>1358316

<br> это тег языка HTML. Он работает только там, где данные интерпретируются как HTML-код (в браузере). А \n браузер воспринимает просто как разделитель слов и непереносит строку.

На ideone и в консоли данные просто выводятся как текст. Если там будут теги - они выведутся как есть.

Это не единственное отличие. Например, & lt ; в браузере выводится как знак "меньше", а в консоли - как есть.

То есть различай "просто текст" и "HTML текст с тегами".

Если добавить в начало header("Content-Type: text/plain; charset=utf-8"); то браузер перестанет воспринимать данные как HTML и \n начнет работать.