Как реализовать такого рода концепцию в php

#php #codeigniter #codeigniter-4

Вопрос:

В codeigniter 4 есть помощник Бд или конструктор запросов, когда print_r($db->getLastQuery()) он возвращает целые методы и другую информацию или когда echo $db->getLastQuery() он возвращает последний запрос. Как одна и та же функция возвращает разные выходные данные в одно и то же время ??

Ответ №1:

Вероятно, потому getLastQuery , что возвращает объект, который реализует магический метод __toString, и с echo переменной преобразуется в строку, в то время print_r как просто печатает необработанный объект.

Комментарии:

1. Это правильно. Возвращаемое значение getLastQuery на самом деле является экземпляром CodeIgniterDatabaseQuery ; у этого Query класса есть toString метод, который неявно вызывается, когда PHP пытается преобразовать echo аргумент из объекта в строку.