- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在 PHP 中从父类继承时,尤其是在 Codeigniter 中,parent::__construct 或 parent::model()
做什么?
如果我不__construct
父类会有什么不同?并且,建议采用哪种方式?
-已添加-
重点更多地放在 Codeigniter 特定的关于以不同方式调用 parent::__construct
上,具体取决于版本,以及是否可以省略以防 Codeigniter 自动执行此操作。
最佳答案
这是一个普通的类构造函数。我们看下面的例子:
class A {
protected $some_var;
function __construct() {
$this->some_var = 'value added in class A';
}
function echo_some_var() {
echo $this->some_var;
}
}
class B extends A {
function __construct() {
$this->some_var = 'value added in class B';
}
}
$a = new A;
$a->echo_some_var(); // will print out 'value added in class A'
$b = new B;
$b->echo_some_var(); // will print out 'value added in class B'
如你所见,类 B 继承了 A 的所有值和函数。所以类成员 $some_var
可以从 A 和 B 访问。因为我们在 B 类中添加了一个构造函数,当你创建 B 类的新对象时,将不会使用 A 类的构造函数。
现在看下面的例子:
class C extends A {
// empty
}
$c = new C;
$c->echo_some_var(); // will print out 'value added in class A'
如你所见,因为我们没有声明构造函数,所以隐式使用了A类的构造函数。但是我们也可以这样做,相当于C类:
class D extends A {
function __construct() {
parent::__construct();
}
}
$d = new D;
$d->echo_some_var(); // will print out 'value added in class A'
因此,当您希望子类中的构造函数执行某些操作并执行父构造函数时,您只需使用 parent::__construct();
行。给出的例子:
class E extends A {
private $some_other_var;
function __construct() {
// first do something important
$this->some_other_var = 'some other value';
// then execute the parent constructor anyway
parent::__construct();
}
}
更多信息可以在这里找到:http://php.net/manual/en/language.oop5.php
关于PHP Codeigniter - parent::__construct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17809517/
我有一个这样的 PHP 类: class ParentClass { public function __construct($arg) { // Initialize a/s
什么时候调用__construct,什么时候调用index?还有其他区别吗? __construct 中要放什么?最好的做法是什么,我应该调用 $this->load 电话......?还有什么? c
我正在尝试为我的类(class)构建一个 __construct 函数。此函数应获取所有 $_REQUEST 值并将它们存储在一个数组中,以便以后可以通过 id 调用它们。问题是它不存储我的变量,我不
历史很少;我讨厌我不能在 CakePHP 中使用枚举,但我明白了。然而,我的另一个烦恼是我的 bool 值返回 0 或 1,并且没有办法将它们普遍地转换为"is"和“否”。 所以我想在 AppMode
如果我有: abstract class AbstractSingleton { protected static $instance; public static function
我在想你能不能帮我一下.. 我有两个类,一个扩展另一个。B 类将由各种不同的对象扩展并用于常见的数据库交互。现在我希望 B 类处理它的连接和断开连接,而无需来自 A 类或任何外部输入.. 据我了解,问
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: what is the function __construct used for? __construct
我已经注意到 __construct 很多与类。我做了一些阅读和网上冲浪,但找不到我能理解的解释。我只是从 OOP 开始。 我想知道是否有人可以大致了解它是什么,然后提供一个简单的例子来说明它是如何与
启用 MFA 时,Imagick 已实现生成二维码。尝试访问该页面以启用 MFA 时出现此错误: 500 ImagickPixel::__construct not implemented 这是更多信
所以我遇到了 PHP 类的“问题”。 我有几个类需要彼此的函数,所以目前我正在做以下事情: $db = new blueConnect; $core = new blueCore($db); $use
我目前在我的 PHP 类中使用构造函数来检查用户是否登录。构造函数调用一个函数来检查它们是否有 session ID 等——如果没有,它会将它们重定向到登录页面。这是我正在使用的想法: functio
我有一个模式Clients,那个用户的数据库表Clients Id | active ________________ 1 | true 2 | true 3 | false 我想更新这
我想知道我的理解是否正确。 我将数据库连接参数放在 __construct() 上,因此这意味着每次实例化该类时,我也会重新连接到我的数据库,对吗? private $handle; public f
我正在处理 oop class.php 文件。我想实现函数 __contruct()。我不知道为什么它不起作用。 我觉得有错误,但不知道怎么写。 $args['file_upload'] = $_FI
我正在使用 CI 3.X。现在在我的应用程序中我使用多个数据库。现在我的托管服务器允许最多 100 个连接,因此我的应用程序崩溃了。 在我的数据库配置中,我将 PCONNECT 保留为 FALSE 。
我有一个必须使用其他倍数对象实例化的 A 类 class A{ function __construct(new X(), new Y(), new Z()){ $this->foo
我在 __construct() 中定义了一个新变量,我想在这个 class 的另一个 function 中使用它。但是我的变量在另一个函数中是空的! 这是我的代码: class testObject
我知道有很多问题与此很接近。但是,我没有设法找到简单问题的答案(我不是在询问构造函数的返回值,我认为我理解构造函数应该返回什么)。 是否有任何理由避免在 __construct 中使用 return?
我有一个父类: Abstract Class Base { function __construct($registry) { // stuff } } 然后我至少有
基本上我有一个方法,我需要在构造函数完成时运行它(该方法称为 persist() 并且它只是将在构造函数期间生成的 key 保存到 session 中)。这看起来很简单,而且有效——在 __const
我是一名优秀的程序员,十分优秀!