【问题标题】:$this->load->library('form_helper') equivalent in C++?$this->load->library('form_helper') 在 C++ 中等效?
【发布时间】:2011-11-07 01:24:30
【问题描述】:

我想知道您是否要编写以下 Codeigniter PHP 代码:

$this->load->library('form_validation');

在 C++ 中

会不会是这样的

class CI {}; //class

CI this; //instance of class made called this

this.load.library('form_validation'); 

这纯粹是学术性的,并非出于实际目的。

因为我正试图在 C++ 中创建一个 CI 的等价物来获得乐趣

谢谢

【问题讨论】:

  • 来自faq:“您应该只根据您面临的实际问题提出实用、可回答的问题。”
  • this 是关键字,不能用作名称。对于我们这些不了解 PHP 的人来说,您想做什么
  • 我试图通过在 PHP 中复制它来理解 codeigniter
  • @mat 你怎么知道这个问题没有实际价值。通过找到等价理解跨不同编程语言的 OOP 非常重要!
  • 您声明这“不是出于实际目的”。我该如何解释?理解编程语言,无论它们的范式如何,确实非常重要,但在这里发布理论性的“假设”问题并不重要。

标签: php c++ oop codeigniter this


【解决方案1】:

否——在 C++ 中加载库是特定于平台的,不是很简单。

C++ 是一种与 PHP 截然不同的语言,如果你不熟悉它,你应该先尝试一个更简单的项目...

【讨论】:

  • 好的,谢谢你是说它必须通过加载到基类中的头文件来完成吗?
【解决方案2】:

这个问题有很多问题。

C++ 是编译语言,而 PHP 是解释语言。

在 C++ 中,必须使用 #include 语句包含对库的引用。这有效地将该文件的源植入到正在使用的文件中。

codeigniter 示例加载它自己的库代码,因为它是一个框架。

这可以通过编写自己的框架和库在 C++ 中完成。

Codeigniter 基本上是在运行时解析库以添加功能。

同样可以通过编写一个服务器包装器来完成,该包装器具有在传递库参数时导入 C++ 代码的功能。

【讨论】:

    【解决方案3】:
    $this->load->library('form_validation');
    

    在这个语句中,$this 是一个关键字,引用你当前所在的类,意思是如果你在 Foo 类的方法中,那么 $this 引用的是 Foo 对象。

    "->" 类似于点 "."在 c++ 中,将对象引用与其属性或方法分开,这意味着如果对象 $foo 有一个名为 bar() 的方法,则 $foo->bar() 将调用该方法。

    “load”和“library”都是特定于 codeigniter 控制器基类的对象和方法名称,因此在 c++ 中没有意义,除非您自己创建它们。

    【讨论】:

    • 那么如何将其他类引入 C++ 中的基类?通过头文件加载
    • 我想您会将基类的属性设置为对象。 object.property = otherobject.
    • @sqlmole:“你如何将其他类引入 C++ 中的基类” 这没有意义。将“其他类加载到基类”是什么意思?
    • @GMan 我认为他的意思是将一个对象的属性设置为另一个对象。
    • 好吧,在 Codeigniter 中你有你的基类,然后你通过基类加载任何其他类,据我所知。然后,您只需使用基类中的实例,该实例包含基类中的所有方法和任何已加载的类。
    猜你喜欢
    • 2019-03-21
    • 2015-05-27
    • 1970-01-01
    • 2012-12-22
    • 2017-03-08
    • 1970-01-01
    • 2012-02-15
    • 2011-08-11
    相关资源
    最近更新 更多