У меня есть index.php
и я хочу включить в него class.twitter.php
, как это сделать?
Надеюсь, тогда, когда я поставлю код ниже в index.php, он будет работать.
$t = new twitter(); $t->username = 'user'; $t->password = 'password'; $data = $t->publicTimeline();
Ваш код должен быть чем-то вроде
require_once('class.twitter.php'); $t = new twitter; $t->username = 'user'; $t->password = 'password'; $data = $t->publicTimeline();
Вы можете использовать одно из следующих действий:
include "class.twitter.php";
или
require "class.twitter.php";
Использование require
(или require_once
если вы хотите, чтобы класс загружался только один раз во время выполнения) приведет к возникновению фатальной ошибки, если файл не существует, тогда как include
будет только вызывать предупреждение. Подробнее см. http://php.net/require и http://php.net/include.
use
из интерфейса командной строки: Пространства имен PHP не работают в командной строке, если вы также не включили или не потребовали файл php. Когда php-файл находится в веб-пространстве, где он интерпретируется демоном php, вам не нужна строка require. Все, что вам нужно, это линия использования.
Создать новый каталог /home/el/bin
Создайте новый файл с именем namespace_example.php
и поместите здесь этот код:
<?php require '/home/el/bin/mylib.php'; use foobarwhatever\dingdong\penguinclass; $mypenguin = new penguinclass(); echo $mypenguin->msg(); ?>
Сделайте еще один файл с именем mylib.php
и поместите здесь этот код:
<?php namespace foobarwhatever\dingdong; class penguinclass { public function msg() { return "It's a beautiful day chris, come out and play! " . "NO! *SLAM!* taka taka taka taka."; } } ?>
Выполните его из командной строки следующим образом:
el@apollo:~/bin$ php namespace_example.php
Какие принты:
It's a beautiful day chris, come out and play! NO! *SLAM!* taka taka taka taka
См. Примечания по этому поводу в комментариях здесь: http://php.net/manual/en/language.namespaces.importing.php
Я предлагаю вам также взглянуть на __autoload .
Это очистит код требований и включает в себя.
require('/yourpath/yourphp.php');
require_once('/yourpath/yourphp.php');
include '/yourpath/yourphp.php';
use \Yourapp\Yourname
Заметки:
Избегайте использования require_once, потому что оно медленное: почему require_once так плохо использовать?
Проверьте: http://www.php.net/require и http://www.php.net/include