Size: a a a

Яндекс.Диалоги (сообщество разработчиков)

2021 March 03

Е

Евгений in Яндекс.Диалоги (сообщество разработчиков)
и нужно было в .htaccess прописать SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
источник
2021 March 04

s

skysilver in Яндекс.Диалоги (сообщество разработчиков)
Евгений
и нужно было в .htaccess прописать SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
На дефолтном апаче ничего подобного не делал.
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
в любой непонятной ситуации print_r($var, true) в файл :) и сразу бы увиделось
Тогда уж
var_export($var, true) ;
$var может оказаться и не массивом вовсе.
источник

A

Arkady in Яндекс.Диалоги (сообщество разработчиков)
Да, export правильнее
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Dmitry Nikolaev
Тогда уж
var_export($var, true) ;
$var может оказаться и не массивом вовсе.
дело вкуса,
как минимум var_export область видимости не показывает у методов объекта
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
дело вкуса,
как минимум var_export область видимости не показывает у методов объекта
Причём тут вкус ? print_r предназначен для вывода массива.
var_export для всего, чтобы как раз было понятно что в переменной, даже если она не существует.

$var = array('a' => true, 'b' => null);
print_r($var);
print var_export($var);

Array
(
   [a] => 1
   [b] =>
)
array (
 'a' => true,
 'b' => NULL,
)
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Dmitry Nikolaev
Причём тут вкус ? print_r предназначен для вывода массива.
var_export для всего, чтобы как раз было понятно что в переменной, даже если она не существует.

$var = array('a' => true, 'b' => null);
print_r($var);
print var_export($var);

Array
(
   [a] => 1
   [b] =>
)
array (
 'a' => true,
 'b' => NULL,
)
узнать точно ли в переменной bool, int ну как часто нужно?!
да и принт дает информацию также хоть и не в явном виде
а если уже и нужно, то var_export
вкусовщина абсолютная, а правильнее или нет - тут конкретно от того, что нужно отдебажить

мне удобнее print_r т.к. часто просто в объекты заглянуть нужно, а он визуальнее удобнее и информативнее для меня
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
узнать точно ли в переменной bool, int ну как часто нужно?!
да и принт дает информацию также хоть и не в явном виде
а если уже и нужно, то var_export
вкусовщина абсолютная, а правильнее или нет - тут конкретно от того, что нужно отдебажить

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

да и вопрос был изначально: "как узнать что в переменной ?"
точно на этот вопрос ответит только var_export
var_export и с объектами замечательно справляется.
источник

A

Arkady in Яндекс.Диалоги (сообщество разработчиков)
+ поддержу. Для логов var_export и универсальный и полный способ.

И удобно обернуть в какую-нибудь общую add_log()
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Dmitry Nikolaev
это нужно всегда, как и сравнение типов
иначе так и появляются баги и дыры

да и вопрос был изначально: "как узнать что в переменной ?"
точно на этот вопрос ответит только var_export
var_export и с объектами замечательно справляется.
хоть var_dump :) что относительно чаще используется чем var_export
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
хоть var_dump :) что относительно чаще используется чем var_export
var_dump не выведет в файл
а ваш пример был про вывод в файл
источник

A

Arkady in Яндекс.Диалоги (сообщество разработчиков)
Dmitry Nikolaev
var_dump не выведет в файл
а ваш пример был про вывод в файл
Можно через сфинктер типа ob_start() / ob_get_clean() теоретически, но оно того не стоит, и сами эти функции <часто> задействуются для основного контента.
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
Arkady
Можно через сфинктер типа ob_start() / ob_get_clean() теоретически, но оно того не стоит, и сами эти функции <часто> задействуются для основного контента.
можно
но зачем писать три строки если можно написать одну ?
источник

A

Arkady in Яндекс.Диалоги (сообщество разработчиков)
Dmitry Nikolaev
можно
но зачем писать три строки если можно написать одну ?
Согласен, это чисто на правах ремарки. Ну и повторюсь, буфер для другого полезнее и там и задействуется обычно.
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
file_put_contents("request.log","HEADERS:\n".var_export(@getallheaders( ),true)."\n",0);
file_put_contents("request.log","INPUT DATA:\n".var_export($inputData,true)."\n",FILE_APPEND);
file_put_contents("request.log","REPLY:\n".var_export(json_encode($resonse,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE),true)."\n",FILE_APPEND);
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Dmitry Nikolaev
var_dump не выведет в файл
а ваш пример был про вывод в файл
вот и вписал print_r
что правильнее и удобнее выбирать самому. тем более я уже написал, почему больше и чаще print_r использую
а var_export ну вообще не припомню когда бы пригодился. есть var_dump если нужно знать тип
печать в файл при дебаге - также не особо часто требуется (скорее когда нет возможности другой)
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Dmitry Nikolaev
file_put_contents("request.log","HEADERS:\n".var_export(@getallheaders( ),true)."\n",0);
file_put_contents("request.log","INPUT DATA:\n".var_export($inputData,true)."\n",FILE_APPEND);
file_put_contents("request.log","REPLY:\n".var_export(json_encode($resonse,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE),true)."\n",FILE_APPEND);
вот нужно будет распарсить лог обратно в переменную, вот и почувствуется разница :)
источник

A

Arkady in Яндекс.Диалоги (сообщество разработчиков)
источник

A

Arkady in Яндекс.Диалоги (сообщество разработчиков)
Давайте дискуссию закруглим на этом примиряющем скрине 👆
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
вот нужно будет распарсить лог обратно в переменную, вот и почувствуется разница :)
парсить лог в переменную не надо
лог нужен для отладки и понимания того, что именно содержит переменная и данные какого типа в ней находятся
источник