die();
, но может быть в реальности там есть какая-то логика по обработке ошибки подключения и это место куда он сможет её разместить__clone()
и __wakeup()
о которых обычно забывают разрабы делая "классический singleton" $this->connection_db = DB::getInstance();
$this->connection_db->query();
php di autowiring
<?php
$data = <<<HTML
<span class="item item-3">
<font style="vertical-align: inherit;">
<font style="vertical-align: inherit;">
Категория: </font></font>
<a href="https://www.....com/category/product" rel="category tag"><font style="vertical-align: inherit;">
<font style="vertical-align: inherit;">Товары</font></font></a>
</span>
HTML;
$html = new \simple_html_dom();
$html->load($data);
$text = trim($html->find('.item.item-3 > a[rel*=category tag]', 0)->plaintext);
var_dump($text); //string(12) "Товары"
??
не колхоз, а такой же обычный оператор вместо того чтобы использовать одну из функций типа isset / empty / array_key_existsОбложка подтягивается с муз сервисов
1. производительности при переиспользовании подготовленного выражения
2. безопасности. в случае с EMULATE_PREPARES=true получаем не настоящее подготовленное выражение, а лишь экранирование, что-то близкое к использованию mysqli_real_escape_string() вокруг параметров
3. более корректной работы с типами данных
Хорошо что вы не бездумно используете решения, а изучаете матчасть. Как правило ATTR_EMULATE_PREPARES=true кроме специфичных случаев связанных с проблемами совместимости использовать смысла не имеет.