天道酬勤,学无止境

how to call a function of another file without including that file

I have one class suppose A and another class B in two different file A.php and B.php respectively.

How can I call function of class A in file B.php without including A.php file in B.php.

Can we call using static function?

I have seen one application in which they are not including file nor extends but using another file class function.

can we use static property for that I tried but not working any idea.

they are also not using autoload function

https://docs.google.com/a/artifex-online.com/file/d/0B6ta7daai0cYeEs0TEJ4OGRacVU/edit?usp=sharing

please have a look to these file.

see the database class used in user class.

标签

评论

You can't. You'll probably get a function not defined error.

What you can do, and what most modern frameworks do, is use autoloading. But you need to use classes for this.

On php.net: http://php.net/autoload

As per usual, don't look at the code samples on php.net too much, they're bad.


auto_prepend_file is another possibility. I would not recommend using this.

That's not possible. Even most popular IDE's show you an error whilst you reference the way how you had mentioned above..

You need to make use of the functions like include() / include_once() or require_once().

In PHP 5+ you have function called autoload() which does the same as the above functions specified, but the speciality of this is that you don't need to specify the include() or require() in each and every file where you want to access the included file.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何在HTML索引文件中导入多个javascript文件而不会the肿?(How do you import multiple javascript files in HTML index file without the bloat?)
    问题 无论如何,无需指定每个文件就可以导入HTML中的多个javascript文件? <script src="js/toolkit/Toolkit.js"></script> <script src="js/toolkit/Viewable.js"></script> <script src="js/toolkit/Overlay.js"></script> IE。 我可以指定类似js / toolkit / *的东西吗? 我必须导入50多个javascript文件,并且指定每个文件似乎非常耗时。 回答1 有一种方法: 您可以创建一个将路径作为参数的javascript函数,并创建以下HTML行: <script src="js/toolkit/Toolkit.js"></script> <script src="js/toolkit/Viewable.js"></script> <script src="js/toolkit/Overlay.js"></script> 您只需要调用此: loadLib("toolkit/Toolkit"); loadLib("toolkit/Viewable"); loadLib("toolkit/Overlay"); 但这是不建议的,因为HTTP请求的数量会增加加载时间。 您最好在服务器端使用某些东西将所有内容放入同一文件中。 回答2
  • In Python, how can I include (not import) one file within another file, macro style, without changing namespace?
    First I do know about 'import'. When I try 'import' it doesn't work. What I'm trying to do is split a single module into two parts, one of which is editable by a group and the other of which is not. I want the group to write well-defined 'retrieval functions' without the temptation or ability to edit the backend code that runs them (even accidentally). The changes in namespace on an 'import' are getting in my way. I'm looking for a macro-style inclusion of File_A's text within File_B, to be run inline as if it were part of File_B. This is what I'm doing: I have some generalized code that is
  • Need NDK Help: How to call a C++ function for shared library from another project that uses C++
    I am badly pulling my hair as not able to figure out (even though searched a lot on google). Please help Situation: I have a shared library. Let's say foo.so (Code completely in C++) Now in a new project, I want to use this shared library foo.so The new project code is also in C++. Let's say new project name is fooMate. I want to call the functions of functions or to use classes of foo in fooMate project cpp files without including the actual source code of foo project (i.e. by just using the foo.so file) Question: How can we achieve this? For Example: class foo { const char* giveMeAString();
  • 需要 NDK 帮助:如何从另一个使用 C++ 的项目调用共享库的 C++ 函数(Need NDK Help: How to call a C++ function for shared library from another project that uses C++)
    问题 由于无法弄清楚(即使在谷歌上搜索了很多),我的头发很糟糕。 请帮忙 情况: 我有一个共享库。 假设 foo.so(完全用 C++ 编写的代码) 现在在一个新项目中,我想使用这个共享库 foo.so 新的项目代码也是用 C++ 编写的。 假设新项目名称是 fooMate。 我想调用函数的函数或在 fooMate 项目 cpp 文件中使用 foo 类而不包含 foo 项目的实际源代码(即仅使用 foo.so 文件) 问题:我们怎样才能做到这一点? 例如: class foo { const char* giveMeAString(); } #include “foo.h” const char* foo::giveMeAString() { return “Hello World!”; } 现在我已经在名为 foo.so 的共享库中成功编译了 foo 类 现在假设我正在编写另一个项目,该项目也有一些 CPP 代码。 但是这个新的 CPP 代码想要重用静态库。 // 宣言 类 fooMate { void printDemo(); } // 执行 #include “fooMate.h” #include “foo.h” void fooMate::printDemo() { foo *testFoo = new foo(); cout<<giveMeAString(); }
  • 从include()获取调用文件名(Get calling file name from include())
    问题 我想从包含的文件内部获取包含另一个文件的文件的名称。 我知道还有就是__FILE__魔术常量,但没有帮助,因为它返回所包含的文件的名称,而不是其中包括。 有什么办法吗? 还是由于解释PHP的方式而不可能? 回答1 实际上,这只是PHP模板引擎所做的特例。 考虑具有以下功能: function ScopedInclude($file, $params = array()) { extract($params); include $file; } 然后A.php可以这样包含C.php : <?php // A.php ScopedInclude('C.php', array('includerFile' => __FILE__)); 另外, B.php可以以相同的方式包含C.php ,而不会带来麻烦。 <?php // B.php ScopedInclude('C.php', array('includerFile' => __FILE__)); 通过查看$ params数组, C.php可以知道其includer。 <?php // C.php echo $includerFile; 回答2 所以这个问题已经很老了,但是我一直在寻找答案,不满意后离开这里,我碰到了$_SERVER['SCRIPT_FILENAME']; 当然,如果包含在内的php文件是网页,则此方法有效。
  • 从 C 中的二进制文件调用函数 (main())(Invoking a function (main()) from a binary file in C)
    问题 我有简单的 c 程序,例如 my_bin.c: #include <stdio.h> int main() { printf("Success!\n"); return 0; } 我用 gcc 编译它并得到可执行文件:my_bin。 现在我想使用另一个 C 程序调用 main(或运行这个 my_bin)。 我用 mmap 和函数指针这样做的: #include <stdio.h> #include <fcntl.h> #include <sys/mman.h> int main() { void (*fun)(); int fd; int *map; fd = open("./my_bin", O_RDONLY); map = mmap(0, 8378, PROT_READ, MAP_SHARED, fd, 0); fun = map; fun(); return 0; } 编辑 1:添加 PROT_EXEC 从响应中使其更加清晰......我想在第二个程序中调用外部二进制程序。 我不知道如何用 main(其他程序的)的地址初始化函数指针。 任何想法? 编辑2: 为什么 seg fault ,经过谷歌搜索,想通了,这是因为我的大小和 mmap 的偏移参数。 它应该是页面大小的倍数。 [参考:在 C 中使用 mmap 读取二进制文件时出现段错误 现在代码看起来像:
  • 为什么一个函数中的预处理器指令会影响另一个函数的编译?(Why does the preprocessor directive in one function affect the compilation of another?)
    问题 下面的程序编译成功并打印1000甚至没有从我们的main()函数调用foo() main()函数。 这怎么可能? #include<stdio.h> void foo() { #define ans 1000 } int main() { printf("%d", ans); return 0; } 回答1 #define由在编译器之前暂存的预处理器运行。 预处理器完成后,代码将如下所示: /* Everything that is inside stdio.h is inserted here */ void foo() { } int main() { printf("%d", 1000); return 0; } 这就是实际编译的内容。 预处理器对于使头文件工作非常重要。 在其中,您会看到以下结构: #ifndef foo #define foo /* The content of the header file */ #endif 没有这个,如果头文件被包含不止一次,编译器就会抱怨。 您可能会问为什么要多次包含头文件。 好吧,头文件可以包含其他头文件。 考虑这个宏,它对调试很有用。 它打印变量的名称,然后打印值。 请注意,您必须为不同的类型创建一个单独的版本。 #define dbg_print_int(x) fprintf(stderr, "%s = %d", #x
  • 如何在 C 中创建一个交互式菜单,从一个功能移动到另一个功能而不重新绘制菜单(how to create an interactive menu in C that moves from one function into another without redrawing the menu)
    问题 我的目标是生成一个程序,它将一个文件作为输入,并通过将字符向前移动 3 来“编码”其中的文本(因此 'a' 将变为 'd')。 它应该生成一个带有编码文本的输出文件。 该菜单用于接受用户输入并执行分配给所选号码的功能。 我很早就开始创建这个程序,但时间紧迫,并且正在努力构建它。 目前,我有菜单显示,但是当调用子功能时,它会显示,但菜单会覆盖它,我不知道为什么。 任何帮助,将不胜感激。 这是我到目前为止的代码...... #include <stdio.h> #define INPUT_FILE 1 //define statements #define OUTPUT_FILE 2 #define NUM_TO_SHIFT 3 #define ENCODE 4 #define QUIT 0 int menu(); //function prototypes int input(); int output(); int shift(); int encode(); void quit(); int main() { int choice; // main variables char user_filename[100]; choice = menu(); // get user's first selection while(choice != QUIT) //execute
  • 我可以在不包含Ruby模块的情况下调用它的实例方法吗?(Can I invoke an instance method on a Ruby module without including it?)
    问题 背景: 我有一个模块,它声明了许多实例方法 module UsefulThings def get_file; ... def delete_file; ... def format_text(x); ... end 我想从一个类中调用其中一些方法。 您通常如何在红宝石中执行以下操作: class UsefulWorker include UsefulThings def do_work format_text("abc") ... end end 问题 include UsefulThings带来所有从方法UsefulThings 。 在这种情况下,我只需要format_text而显式地则不需要get_file和delete_file 。 我可以看到几种可能的解决方案: 以某种方式直接在模块上调用该方法,而无需在任何地方包含它我不知道如何/是否可以做到这一点。 (因此出现此问题) 不知何故地包括了Usefulthings ,只引入了其中的一些方法我也不知道如何/是否可以做到这一点创建一个代理类,在其中包含UsefulThings ,然后将format_text委托给该代理实例这会起作用,但是匿名代理类是一个hack。 呸。 将模块分成2个或更多个较小的模块这也将起作用,并且可能是我能想到的最好的解决方案,但是我宁愿避免使用它,因为这样最终会导致大量模块的扩散
  • 如何在PHP文件之间传递数据库连接实例而不重新声明它(How to pass database connection instance between PHP files without redeclaring it)
    问题 我在 PHP 中创建了一个数据库连接实例,如: $mysqli = mysqli_connect("localhost", "root", "blabla", "blabla"); 我需要将此数据库连接传递给其他 PHP 文件,因为我有一个 HTML 表单,它首先将数据插入数据库,然后转到检索数据的 PHP 页面。 我知道我不能每次都实例化数据库连接但我不知道该怎么做,因为我对 OO PHP 不太熟悉。 回答1 您可以只命名一个文件 connection.php 并存储您的行以连接到数据库。 然后你可以像这样包含你的文件: require_once('connection.php'); 这将是 connection.php 的内容: $mysqli = mysqli_connect("localhost", "root", "blabla", "blabla"); 然后这样,您的文件将永远不会加载两次。 回答2 如果我理解正确,我认为您误解了您所阅读的内容。 在 PHP 中,大多数系统(phpBB、WordPress 等)的做法是在每个 PHP 页面的开头包含一个基本包含文件。 如果我没记错的话,在 phpBB 中它被称为“Common.php”。 Common.php 通过并做了一些事情: 它读取数据库配置文件并通过最可接受的数据库连接类型(mysql_connect 或
  • C头文件和编译/链接(C header files and compilation/linking)
    问题 我知道头文件具有各种函数,结构等的前向声明,这些声明在.c文件中使用,它们“调用” #include ,对吗? 据我了解,“权力分离”是这样发生的: 头文件: func.h 包含功能的前向声明int func(int i); C源文件: func.c 包含实际的功能定义#include "func.h" int func(int i) { return ++i ; } C源文件source.c (“实际”程序): #include <stdio.h> #include "func.h" int main(void) { int res = func(3); printf("%i", res); } 我的问题是:看到#include只是一个编译器指令,该指令会复制#include所在文件中的.h内容, .c文件如何知道如何实际执行该功能? 它得到的只是int func(int i); ,那么它实际上如何执行该功能? 它如何获得对func的实际定义的访问权? 标头中是否包含某种“指针”,它说“那是我的定义,在那边!”? 它是如何工作的? 回答1 Uchia Itachi给出了答案。 这是链接器。 使用GNU C编译器gcc您可以编译一个文件程序,例如 gcc hello.c -o hello # generating the executable hello 但是
  • C++ 中的动态和静态库(Dynamic and Static Libraries in C++)
    问题 在我学习 C++ 的过程中,我遇到了动态库和静态库。 我通常了解它们的要点:编译后的代码以包含到其他程序中。 但是,我想了解一些关于它们的信息: 编写它们与普通的 C++ 程序有什么不同,减去main()函数? 编译后的程序如何成为库? 它显然不是可执行文件,那么我如何将“test.cpp”转换为“test.dll”? 一旦我得到它的格式,我如何将它包含在另一个程序中? 是否有放置它们的标准位置,以便编译器/链接器可以轻松找到它们? 动态库和静态库之间有什么区别(技术上和实践上)? 我将如何在我的代码中使用第三方库(我正在关注 MySql C++ 连接器的.dylib和.a文件) 我发现的与图书馆有关的一切似乎都是针对那些已经知道如何使用它们的人。 然而,我没有。 (但愿意!) 谢谢! (我还应该注意我使用的是 Mac OS X,虽然我更愿意保持 IDE 中立或面向命令行,但我使用 QtCreator/Netbeans) 回答1 编写它们与普通的 C++ 程序有什么不同,减去 main() 函数? 不。 编译后的程序如何成为库? 它显然不是可执行文件,那么我如何将“test.cpp”转换为“test.dll”? 编译时传递-dynamiclib标志。 (默认情况下,结果的名称仍然是a.out 。在 Mac OS X 上,您应该将动态库命名为lib***.dylib ,而在
  • PHP:调用另一个类的方法(PHP: Calling another class' method)
    问题 我仍在学习 OOP,所以这甚至可能不可能(尽管如果是这样我会感到惊讶),我需要一些帮助来调用另一个类方法。 例如在ClassA I有这个方法: function getName() { return $this->name; } 现在从ClassB (不同的文件,但在同一目录中),我想调用ClassA的getName() ,我该怎么做? 我试图只做一个include()但这不起作用。 谢谢! 回答1 //file1.php <?php class ClassA { private $name = 'John'; function getName() { return $this->name; } } ?> //file2.php <?php include ("file1.php"); class ClassB { function __construct() { } function callA() { $classA = new ClassA(); $name = $classA->getName(); echo $name; //Prints John } } $classb = new ClassB(); $classb->callA(); ?> 回答2 如果它们是单独的类,您可以执行以下操作: class A { private $name; public
  • 访问同一源文件中另一个 .cpp 的成员函数?(Access member function of another .cpp within same source file?)
    问题 我在 Visual C++ 中工作。 我在同一个源文件中有两个 .cpp 文件。 如何在这个主 .cpp 中访问另一个类 (.cpp) 函数? 回答1 您应该在 .h 文件中定义您的类,并在 .cpp 文件中实现它。 然后,将您的 .h 文件包含在您想要使用类的任何位置。 例如 文件 use_me.h #include <iostream> class Use_me{ public: void echo(char c); }; 文件 use_me.cpp #include "use_me.h" //use_me.h must be placed in the same directory as use_me.cpp void Use_me::echo(char c){std::cout<<c<<std::endl;} 主程序 #include "use_me.h"//use_me.h must be in the same directory as main.cpp int main(){ char c = 1; Use_me use; use.echo(c); return 0; } 回答2 无需创建头文件。 使用extern修饰符。 a.cpp extern int sum (int a, int b); int main() { int z = sum (2, 3)
  • 粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数
    粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数一个端口号可以同时被两个进程绑定吗?两个线程,两个互斥锁,怎么形成一个死循环?一个例子让你看清线程调度的随机性问题描述:某个函数fun_1()是在lib内,没法修改的,在程序中大量的使用了该函数,现在想把原本fun_1失效(现在失效的方法是#define fun_1(…)),用另外一个函数fun_2(),可是fun_2最后也需要调用fun_1,上面的失效方法感觉就不行了,请问怎么做才对? 我把问题简单整理下:我们库文件里有个函数是read()我们现在要自己定义一个名字一样的函数read(),main()函数首先调用我们自己定义的函数read()自己定义的函数,要再定义库文件中的read()函数。粉丝提问,必须安排!一口君实力宠粉!想学习C语言、Linux、驱动、ARM的同学可以加一口君好友。解决思路-static如果我们要使用一个和库函数相同名字的函数,就要借助static关键字。在函数的返回类型前加上static,就是静态函数。其特性如下:静态函数只能在声明它的文件中可见,其他文件不能引用该函数不同的文件可以使用相同名字的静态函数,互不影响其他库如果有相同的函数名,优先使用本文件的静态函数举例系统调用函数read(),定义如下:现在我们想定义一个自己的函数,名字也是read,要如何操作呢?#include
  • C包括守卫到底是做什么的?(What exactly do C include guards do?)
    问题 我对C中的包含卫士有一个疑问。我已经读了一些书,但希望能得到一些澄清。 假设我有一个带有函数定义的头文件“ header.h”。 #ifndef HEADER_FILE #define HEADER_FILE int two(void){ return 2; } #endif 该头文件具有包含保护。 但是,我对#define HEADER_FILE实际在做什么感到困惑。 假设我忘记了include防护,完全忽略添加'#define HEADER_FILE'对我来说是完全合法的。 所以我的问题是:定义HEADER_FILE时,我们到底在做什么? 我们在定义什么? 并且为什么还可以忘记包含保护,在这种情况下我们也可以忘记添加#define HEADER_FILE? 任何帮助表示赞赏! 回答1 这是一个预处理器宏。 所有这些都是预处理程序语法,基本上说,如果尚未定义此宏,则对其进行定义并包括#ifndef和#endif之间的所有代码。 它的作用是防止多次包含文件,这可能会导致代码出现问题。 你的问题: 并且为什么还可以忘记包含保护,在这种情况下我们也可以忘记添加#define HEADER_FILE? 可以忘记它,因为没有它它仍然是合法的C代码。 如果没有逻辑说明为什么不应该这样做,则预处理器会在文件编译之前对其进行处理,并在最终程序中包含指定的代码。 这只是一种常见的做法
  • 如何将一个HTML页面包含到没有frame / iframe的另一个HTML页面中?(How to include an HTML page into another HTML page without frame/iframe?)
    问题 我想在HTML页面中包含一个HTML页面。 可能吗? 我不想在PHP中做到这一点,我知道在PHP中我们可以针对这种情况使用include ,如何在不使用iframe和frame概念的情况下完全在HTML中实现相同的目的? 回答1 如果您只是试图将自己的HTML插入另一个文件中,并且认为服务器端包含是“纯HTML”(因为它看起来像HTML注释,并且未使用PHP之类的“脏”东西) ): <!--#include virtual="/footer.html" --> 回答2 您可以使用对象元素 <object type="text/html" data="urltofile.html"></object> 或者,在您的本地服务器上,AJAX可以返回HTML字符串(responseText),可用于记录文档。编写新窗口,或编辑head和body标签,然后将其余标签添加到div或当前页面。 回答3 如果您的意思是客户端,那么您将不得不使用JavaScript或框架。 简单的开始方法,尝试使用jQuery $("#links").load("/Main_Page #jq-p-Getting-Started li"); jQuery Docs的更多内容 如果要使用IFrame,请先在IFrames上使用Wikipedia <!DOCTYPE html PUBLIC "-//W3C//DTD
  • 为什么C ++需要一个单独的头文件?(Why does C++ need a separate header file?)
    问题 我从来没有真正理解过为什么C ++需要一个单独的头文件,其功能与.cpp文件中的功能相同。 这使得创建类和重构它们非常困难,并且向项目中添加了不必要的文件。 然后就是必须包含头文件,但是必须显式检查它是否已包含的问题。 C ++于1998年获得批准,那么为什么要这样设计呢? 拥有单独的头文件有什么优点? 后续问题: 当我仅包含.h文件时,编译器如何查找其中包含代码的.cpp文件? 它是否假定.cpp文件与.h文件具有相同的名称,或者实际上查看目录树中的所有文件? 回答1 尽管头文件还有其他用途,但您似乎在询问有关将定义与声明分开的问题。 答案是C ++不需要。 如果将所有内容都标记为内联(对于类定义中定义的成员函数而言,这始终是自动的),则无需进行分隔。 您可以在头文件中定义所有内容。 您可能想分开的原因是: 缩短构建时间。 在没有定义源的情况下链接代码。 为了避免将所有内容标记为“内联”。 如果您更笼统的问题是“为什么C ++与Java不一样?”,那么我不得不问:“为什么用C ++而不是Java?” ;-p 但是,更严重的是,原因是C ++编译器不能仅仅以javac可以而且可以做到的方式进入另一个转换单元并弄清楚如何使用其符号。 需要头文件来向编译器声明它在链接时可以使用的内容。 因此, #include是直接的文本替换。 如果您在头文件中定义所有内容
  • 如何使用PHP包含多个具有相对路径的目录/子目录(How to use a PHP includes across multiple directories/sub directories with relative paths)
    问题 我在尝试构建的cms系统中的路径上遇到困难,我基本上有了一个包含我的header.php和footer.php文件的文件夹。 这些都包含在index.php中,并且工作正常。 但是,当我尝试在admin子目录中的文件中使用相同的include时,图像和CSS损坏了,显然是因为相对路径现在错误了。 所以我的问题是,我该如何克服呢? 在阅读了此处和其他各种来源的其他一些问题之后,我认为绝对路径是前进的道路,但是我一直使用相对路径,因此使用配置文件指定绝对路径的各种概念使我感到困惑。 我通常会自己为自己解决问题,但是这已经是漫长的一天,我很沮丧! 回答1 我通常在我的应用程序根目录中有一个名为config的文件,并且在其中定义了基本路径和其他一些常量: define('APP_BASE_PATH', dirname(__FILE__)); define('APP_FUNCTIONS_PATH', APP_BASE_PATH . '/functions'); 我包括我的文件 include (APP_BASE_PATH . 'includes/another_file.php'); include (APP_FUNCTIONS_PATH . '/function_file.php'); 这样,我可以将我的应用程序放置在任何目录中,再加上我可以无忧无虑地移动文件。
  • 如何在Perl脚本中包含来自另一个文件的功能?(How do I include functions from another file in my Perl script?)
    问题 这似乎是一个非常简单的问题,但是以某种方式我的Google-Fu失败了。 在Perl中包括来自其他文件的功能的语法是什么? 我正在寻找类似C的#include "blah.h" 我看到了使用Perl模块的选项,但这似乎需要对我当前的代码进行不重要的重写。 回答1 使用模块。 签出perldoc perlmod和Exporter。 在文件Foo.pm中 package Foo; use strict; use warnings; use Exporter; our @ISA= qw( Exporter ); # these CAN be exported. our @EXPORT_OK = qw( export_me export_me_too ); # these are exported by default. our @EXPORT = qw( export_me ); sub export_me { # stuff } sub export_me_too { # stuff } 1; 在您的主程序中: use strict; use warnings; use Foo; # import default list of items. export_me( 1 ); 或同时获得两个功能: use strict; use warnings; use Foo qw(