Сократите вложенные имена пространства имен

В вашем соединении: mysql_set_charset('utf8', $link);

Пример:

<?php
$link = mysql_connect('localhost', 'your_user', 'your_password');
mysql_set_charset('utf8', $link);
$db_selected = mysql_select_db('your_db', $link);
...

Надеюсь, что несколько помогает.

6
задан bighil 2 November 2009 в 14:08
поделиться

4 ответа

Вот мой любимый прием:

#include "header1"

namespace test2 {

class Test1 {
 private:
  typedef ::test::test1::Test MeaningfulName;

  void test(MeaningfulName &test) {}
  void test1(MeaningfulName &test) {}
  void test2(MeaningfulName &test1, MeaningfulName &test2) {}
};

}

Я делаю свои псевдонимы typedef закрытыми, но помещаю их прямо в начале объявления класса. Не имеет значения, что они являются частными для остальной части программы, потому что никто не будет использовать псевдонимы, они будут использовать фактическое имя типа или свой собственный псевдоним для имени.

Я также действительно предпочитаю использовать привязанные имена пространств имен, чтобы избежать неожиданностей. Мое правило состоит в том, что я всегда использую привязанное имя, если только пространство имен не является тем, которое я контролирую, и / или является частью текущего проекта, пакета или чего-то еще. Тогда я буду использовать максимально короткое относительное имя. Если бы это относительное имя начиналось с корневого пространства имен, я все еще часто использую привязанное имя.

Основная проблема - это орграф <: , который будет часто появляться в объявлениях шаблонов, когда вы начнете чаще использовать привязанные имена. Вы должны оставить пробел, чтобы этого избежать, тем более что обработка орграфа происходит на очень ранней стадии и может выдавать очень странные сообщения об ошибках.

6
ответ дан 9 December 2019 в 22:36
поделиться

вы можете использовать псевдонимы для пространств имен, например:

namespace tt=test::test1;
4
ответ дан 9 December 2019 в 22:36
поделиться

Есть способы сократить имена с помощью псевдонимов или с использованием ключевого слова , но это почти всегда плохая идея. Пространства имен существуют по какой-то причине, чтобы все было разделено. Как только вы помещаете ключевое слово using в файл заголовка, вы нарушаете это разделение, и вообще нет смысла использовать пространства имен. Внутри ваших файлов cpp вы можете свободно использовать с использованием пространства имен test1 , если вы реализуете что-то в test1 , но я бы рекомендовал вам не делать этого в вашем файле заголовка, поскольку это то же самое, что помещать его в начало каждого отдельного файла cpp, в который включен этот заголовок.

Вы должны помнить, что объявление чего-либо в заголовке - это то же самое, что объявление этого в каждом файле cpp, в который этот заголовок включен .

1
ответ дан 9 December 2019 в 22:36
поделиться

В файле header2.h

using namespace test::test1;
0
ответ дан 9 December 2019 в 22:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: