[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пространства имен
Страницы: 1, 2
destin9000
1)Зачем нужна конструкция "use"(не use as)?
Думал что она импортирует все переменные,функции,классы в текущий файл(текущее пространство)

Например:
first.php
require_once 'testnamespace.php';

use Test\SubTest;

test();


testnamespace.php
namespace Test\SubTest
{
function test()
{
echo 'From SubTest namespace';
}
}


Но выдает ошибку что такой функции не существует...
2)Как обратится к переменной из namespace?
3)Стоит ли вообще сейчас использовать namespace?

Ссылку на статью на хабре не кидать, уже читал..
bestxp
SubTest\test();

а если хочешь test() писать то тогда нужно
use Test\SubTest\test;

test();
destin9000
Ок, а пространство имен должно быть в каждом классе, или не обьязательно?
kaww
destin9000
не обязательно, но если хотите использовать класс из глобальной области видимости то нужно использовать \ т.е., нпример
throw new \Exception();
destin9000
3)Стоит ли вообще сейчас использовать namespace?
В этом есть смысл?
bestxp
Конечно есть, чего стоит новый стандарт PSR-0
Да и отделять область видимости , что бы названия не пересекались классов и функций
destin9000
Как можно реализовать следующее:
Есть автозагрузчик, надо что бы он возвращал обьект нужного класса, про singleton знаю..
destin9000
Да, такого не реализуеш..
Другой вопрос - есть класс для работы с БД, __construct приватный, использую синглтон.

В конструкторе был код - вызов метода connect, как такое сделать на синглтоне?
SlavaFr
как то не совсем понятно о чем ты говориш.

Автозагрузчик это в смысле autoload? Если autoload, то его задача не заключается в создании объектов, а в том, чтоб загрузить классы в случае если они еще не найдены в PHP.

Цитата (destin9000 @ 24.02.2013 - 09:36)
Другой вопрос - есть класс для работы с БД, __construct приватный, использую синглтон.

В конструкторе был код - вызов метода connect, как такое сделать на синглтоне?

Не понятно, что не получается. Приведи пожалуйста пример с кодом.

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
destin9000
function __construct()
{
$this->connect();
}


Как это сделать на синглтоне?
SlavaFr
Цитата (destin9000 @ 24.02.2013 - 10:35)
Как это сделать на синглтоне?

Так же как и в обычном объекте. Разница только в том, что в singelton конструктор приватный, но это для вызова connect это не как не мешает.

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
destin9000
Цитата (SlavaFr @ 24.02.2013 - 15:01)
Цитата (destin9000 @ 24.02.2013 - 10:35)
Как это сделать на синглтоне?

Так же как и в обычном объекте. Разница только в том, что в singelton конструктор приватный, но это для вызова connect это не как не мешает.

Как из статическего метода getInstance вызвать нестатический connect?
kaww
Цитата (destin9000 @ 24.02.2013 - 13:15)
Как из статическего метода getInstance вызвать нестатический connect?

так же как и любой другой
self::$instance->connect()
destin9000
Теперь немножко глупый вопрос и не по теме, но:
надо вывести все 12-значные числа в которых есть 0, 1, 2, например:
000000000000
010000000000
kaww
destin9000
, перебором?
$i=0;
$c = 0;
while(strlen($c) < 13) {

echo $c, "\n";
$c = base_convert(++$i, 10, 3);
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.