Одним из способов отладки PHP кода является вывод сообщений в консоль браузера. Этот метод позволяет разработчику получить подробную информацию о значении переменных, выполнении функций, при этом не показывая ее пользователю.
Для этого можно воспользоваться статическим классом:
<?php
/**
* Вывод строк и переменных из PHP в консоль браузера
*/
Class Console
{
static $message = array();
public static function out()
{
if (!empty(self::$message)) {
echo '<script>';
foreach(self::$message as $i => $items) {
foreach($items as $item) {
echo 'console.' . $i . "('" . addslashes($item) . "');";
}
}
echo '</script>';
}
}
private static function _convertVals($args)
{
if (!empty($args)) {
$res = array();
foreach($args as $item) {
if (is_array($item)) {
$res[] = json_encode($item, true);
} else {
$res[] = addslashes($item);
}
}
return implode(' ', $res);
}
}
public static function log()
{
self::$message['log'][] = self::_convertVals(func_get_args());
}
public static function info()
{
self::$message['info'][] = self::_convertVals(func_get_args());
}
public static function warn()
{
self::$message['warn'][] = self::_convertVals(func_get_args());
}
public static function error()
{
self::$message['error'][] = self::_convertVals(func_get_args());
}
}
...
<?php Console::out(); ?>
</body>
</html>
<?php
Console::log('Текст 1', 'Текст 2');
Console::log(array("foo", "bar", "hallo", "world"));
Console::info('Инфо');
Console::warn('Внимание!');
Console::error('Ошибка!');