Всё правильно вывел. Пока ты будешь тыкать пальцем в небо - он всегда будет выводить правильно. Для себя правильно. А если ты хочешь чтоб для тебя это было правильно - ты должен научиться в голову не только кушать. --- Добавлено --- запрошенные данные вообще-то были доступны в тексте ошибки. Дальше немного магии работы головного мозга и один из вариантов решения. Я бы делал иначе, но тебе без разницы - всё равно работать не будет из-за прослойки между стулом и монитором.
@ubunta2, при использовании относительного пути к файлу в php производится поиск файла в директориях, указаных в include_path. У Вас их там три штуки, отделенные символом ";". К этим директориям добавляется относительный путь к файлу (указанный в require, например) и по полученному пути проверяется наличие файла. Еслиб Вы указали абсолютный путь к файлу (начинающийся с диска E в Вашем случае), то местоположение файла Debug.php не имело бы значения.
PHP: <?php $mysqli = new mysqli("localhost", "root", "", "mybase"); $mysqli->query("SET NAMES 'utf8'"); $mysqli->query("CREATE DATABASE `temp`"); $mysqli->query("CREATE TABLE `temp`. `cities` (`id` INT(11) UNSIGNET NOT NULL AUTO_INCREMENT PRIMARY KEY, `title` VARCHAR (255) character set utf8 collate utf8_general_ci NOT NULL) ENGINF=MYSAM CHARACTER SET utf8 COLLATE utf8_general_ci"); $mysqli->close(); ?>
Ну так усложняй по очереди. Создай таблицу в БД вручную, а через запрос попробуй ее дропнуть: Код (Text): DROP TABLE `mytable`; Если норм, значит коннект к БД есть. Затем попробуй запрос на CREATE. Если в этот раз не сработает, значит ошибка здесь. Попробуй ее локализовать.
@Сереганек, ходят слухи, что он не умеет отладку делать. Вот эту твою рекомендацию посмотреть вардамп он никуда не сумеет приладить. Вообще.
PHP: -- phpMyAdmin SQL Dump -- version 4.6.5.2 -- https://www.phpmyadmin.net/ -- -- Хост: 127.0.0.1:3306 -- Время создания: Авг 06 2017 г., 21:14 -- Версия сервера: 5.5.53 -- Версия PHP: 7.0.14 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- База данных: `temp` -- -- -------------------------------------------------------- -- -- Структура таблицы `cities` -- CREATE TABLE `cities` ( `id` int(11) UNSIGNED NOT NULL, `title` varchar(255) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- Индексы сохранённых таблиц -- -- -- Индексы таблицы `cities` -- ALTER TABLE `cities` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT для сохранённых таблиц -- -- -- AUTO_INCREMENT для таблицы `cities` -- ALTER TABLE `cities` MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; вручную. создал, но при написании кода пока непонятно
@ubunta2 Вот это: "File/Logger.php" - относительный путь. Он задается относительно какой-либо директории. Для того чтобы загрузить файл нужен абсолютный путь (от корневой директории файловой системы), а точнее это называется полным именем файла. В браузере в адресной строке вводится: "http://vasya.ru/index.php" Файл index.php на сервере имеет полное имя (абсолютный путь): "e:\openserver\vasya\index.php" (например) Он находится в директории "e:\openserver\vasya\" - эта директория и есть "директория точки входа" для всех скриптов, запускаемых из index.php (при помощи require или include). В include_path она обозначена ".". Если в индексном файле написать require "File/Logger.php", то наличие этого файла будет проверяться относительно всех директорий, указаных в include_path. Сначала относительно "точки входа", а потом еще двух директорий. Относительно "точки входа" абсолютный путь к файлу будет выглядеть вот так: "e:\openserver\vasya\" + "File\Logger.php" В книге у Вас скорее всего скрипт запускается из корневой директории сайта (например index.php), потом подцепляется файл Debug.php. И из него уже директива require с указанным относительным путем без ошибок находит файл относительно точки входа (index.php).
PHP: <?php ## Использование анонимных классов class Dumper { public static function print($obj) { print_r($obj); } } Dumper::print( new class { public $title; public function __construct(){ $this->title = "Hello world!"; } }); ?> появилось class@anonymous Object ( [title] => Hello world! )
Что непонятного? анонимный класс, поэтому вместо имени class@anonymous. Конструктор выполнился, поэтому title имеет заданное в нём значение. Логика у тебя вообще отдыхает, что-ли? Анонимные классы - новая фитча php 7