我想检查一下我对codeigniter的假设是否正确?
当我们尝试在核心中包含更多功能时,我们通常会扩展一个类,例如MY_Controller extends Controller,MY_Model扩展Model等......
但是,例如,如果我们在结帐库中检索一些结帐信息(例如,product_id),我们可以$this->load->library('product_lib',array('product_id'=>$product_id))
,我们可以轻松$ this-> product_lib-> product_name等...来自收银台吧?
$this->load
类似于“硬代码”结帐库,以扩展product_lib(类checkout_lib扩展product_lib),以便能够使用product_lib中的任何方法/变量。
请赐教。
答案 0 :(得分:0)
在CodeIgniter中$this->load
就像拥有一个资源管理器(例如resourceManager-> load(“path / to / file”)),它负责加载库,并传递你指定的任何参数等,轻松让您快速使用它。
因此,如果您的product_lib中有一个名为product_name的变量,那么调用$this->product_lib->product_name
将会访问该变量。
实际上它只是将库放入一个数组,其中库名作为键,库的实例作为值,因此调用$this->product_lib
实际上调用的类似于$loadedLibraries['product_lib']
并返回实例
我希望能回答你的问题,我很累,可能会错过了解你的问题。
答案 1 :(得分:0)
我认为你误解了OO范式和CI的运作方式。
$this->load
与实例化库/模型的对象相同,或者加载帮助文件。 CI具有某种管理功能,可以查看是否已经上传了帮助程序/库/模型。
另一方面,在定义类时使用extends,告诉PHP该类将继承父类的属性和方法。一个类是它将产生的蓝色对象。
也许你可以先了解OO概念。您可以read this作为开头,并查看此处使用的参考。