Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Рабочая тетрадь(4)

.pdf
Скачиваний:
36
Добавлен:
10.02.2016
Размер:
7 Мб
Скачать
☆

Лучше, но не надо

<?php

namespace MyProject { const CONNECT_OK = 1;

class Connection { /* ... */ } function connect() { /* ... */ }

}

/* Никакого кода между блоками! */ namespace AnotherProject {

const CONNECT_OK = 1;

class Connection { /* ... */ } function connect() { /* ... */ }

}

?>

Можно и так, но… не надо

<?php

namespace MyProject { const CONNECT_OK = 1;

class Connection { /* ... */ } function connect() { /* ... */ }

}

namespace { // глобальное пространство session_start();

$a = MyProject\connect();

echo MyProject\Connection::start();

}

?>

Надо так

my_project.php

▪<?php

namespace MyProject /* ... */ ?>

another_project.php

▪<?php

namespace AnotherProject /* ... */ ?>

index.php

▪<?php

include 'my_project.php'; include 'another_project.php';

Или так

my_project.php

▪<?php

namespace MyProject /* ... */ ?>

another_project.php

▪<?php

namespace AnotherProject include 'my_project.php'; /* ... */ ?>

Относительное имя файла

foo.txt

current_directory/foo.txt

Относительный путь к файлу

sub_directory/foo.txt

current_directory/sub_directory/foo.txt

Абсолютный путь к файлу

/root/foo.txt

/root/foo.txt

Unqualified name

global.php (include 'project.php')

▪class Connection { /* ... */ }

project.php

▪namespace Project

class Connection { /* ... */ }

В пространстве Project (project.php)

▪$obj = new Connection();

В глобальном пространстве (global.php)

▪$obj = new Connection();

File-1.php

namespace Foo\Bar\subnamespace; const FOO = 1;

function foo() {}

class foo { static function baz() {} }

File-2.php

namespace Foo\Bar; include 'file-1.php'; const FOO = 2; function foo() {}

class foo { static function baz() {} }

foo(); // Foo\Bar\foo()

foo::baz(); // Foo\Bar\foo::baz

echo FOO; // Foo\Bar\FOO

Unqualified name (константы и функции)

global.php (include 'project.php')

▪const FOO = 'GLOBAL', BAR = 'GLOBAL';

project.php

▪namespace Project const FOO = 'PROJECT';

echo FOO, ' и ' , BAR;

В глобальном пространстве (global.php)

▪GLOBAL и GLOBAL

В пространстве Project (project.php)

▪PROJECT и GLOBAL

namespace Foo;

const E_ALL = 3;

class Exception {/* ... */} function count() {/* ... */}

echo count(); // Foo\count

echo \count(array('a', 'b')); // global

echo strlen('hello'); // global

echo \E_ALL; // global

$e = new \Exception('error'); // global

namespace Foo; function strlen($var) {

//Глобальная функция trim

//Глобальная функция strlen return trim(\strlen($var));

}

echo strlen('hello'); // Foo\strlen