echo(); - выводит одну или более строк
var_dump(); - отображает структурированную информацию об одном или нескольких выражениях, включая их тип и значение
var_export(); - выводит в браузер или возвращает интерпретируемое строковое представление переменной
print_r(); - выводит удобочитаемую информацию о переменной
error_log(); - отправляет сообщение об ошибке, например
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?><script type="text/javascript"> var desc='<?php echo $Itemid;?>'; alert(desc); </script> <?php
1. NordWest - 31 августа 2013 — 16:52 - перейти к сообщению
2. NordWest - 31 августа 2013 — 17:11 - перейти к сообщению
Вот ещё нашел, нужно будет потом обмозговать...
Цитата:
Часто при отладке скриптов требуется вывести значение какой-либо переменной, чтобы понять, на каком этапе берутся неправильные данные. Использование для этого print_r — не самое лучшее решение (особенно при отладке на живом сайте), так как значение может вывестись в неподходящем месте (например, если используется шаблонизатор, то еще до HTML-заголовка). Кроме того, Более корректное решение — запомнить значение в отладочную переменную, которую вывести потом там, где ее появление не будет мешать (например, в подвале сайта).
Я для этих целей написал себе функцию. Эта функция экранирует все переданные в нее параметры и запоминает в глобальную переменную $GLOBALS['IntBF_debug'], из которой ее можно вывести в любом подходящем месте с помощью обычного echo.
code:
function _dbg() {
$dbg_on = defined('CONFIG_debug') ? CONFIG_debug : false;
if ($dbg_on) {
if (!isset($GLOBALS['IntBF_debug'])) $GLOBALS['IntBF_debug']='';
$GLOBALS['IntBF_debug'].='<p>';
foreach (func_get_args() as $name=>$value) {
if (is_array($value) || is_object($value)) $GLOBALS['IntBF_debug'].=$name.': '.nl2br(str_replace(' ',' ',htmlspecialchars(print_r($value,true))));
else $GLOBALS['IntBF_debug'].=$name.': '.htmlspecialchars($value).' ';
}
$GLOBALS['IntBF_debug'].="</p>\n";
}
}
$dbg_on = defined('CONFIG_debug') ? CONFIG_debug : false;
if ($dbg_on) {
if (!isset($GLOBALS['IntBF_debug'])) $GLOBALS['IntBF_debug']='';
$GLOBALS['IntBF_debug'].='<p>';
foreach (func_get_args() as $name=>$value) {
if (is_array($value) || is_object($value)) $GLOBALS['IntBF_debug'].=$name.': '.nl2br(str_replace(' ',' ',htmlspecialchars(print_r($value,true))));
else $GLOBALS['IntBF_debug'].=$name.': '.htmlspecialchars($value).' ';
}
$GLOBALS['IntBF_debug'].="</p>\n";
}
}
3. NordWest - 31 августа 2013 — 17:25 - перейти к сообщению
4. NordWest - 29 июня 2015 — 08:29 - перейти к сообщению
Если срипт не работает и при этом нет никаких сообщений об ошибках - вероятно сервер просто ошибки не показывает. Что бы показывал - нужно добавить в самый верх файла с проблемным скриптом строки...
code:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);