在PHP 5中,使用self
和之间有什么区别$this
?
什么时候合适?
使用
$this
来指代当前对象。用self
指当前类。换句话说,
$this->member
用于非静态成员,self::$member
用于静态成员。
这里是一个例子 正确 的使用$this
和self
用于非静态和静态成员变量:
<?php
class X {
private $non_static_member = 1;
private static $static_member = 2;
function __construct() {
echo $this->non_static_member . ' '
. self::$static_member;
}
}
new X();
?>
这里是一个例子 不正确 的使用$this
和self
用于非静态和静态成员变量:
<?php
class X {
private $non_static_member = 1;
private static $static_member = 2;
function __construct() {
echo self::$non_static_member . ' '
. $this->static_member;
}
}
new X();
?>
这是带有for成员函数的 多态 示例$this
:
<?php
class X {
function foo() {
echo 'X::foo()';
}
function bar() {
$this->foo();
}
}
class Y extends X {
function foo() {
echo 'Y::foo()';
}
}
$x = new Y();
$x->bar();
?>
这是通过使用for成员函数来 抑制多态行为 的示例self
:
<?php
class X {
function foo() {
echo 'X::foo()';
}
function bar() {
self::foo();
}
}
class Y extends X {
function foo() {
echo 'Y::foo()';
}
}
$x = new Y();
$x->bar();
?>
问题内容: 在Java中使用关键字的最佳做法是什么?例如,我有以下课程: 没关系,但是Java足够聪明,如果我将构造函数中的语句更改为 那么为什么要使用this关键字呢?(我意识到在某些情况下,完全有必要使用它,我只是在问这种情况)。实际上,出于可读性的考虑,我倾向于仅使用关键字,但是常见的做法是什么?例如,在整个商店中使用它会使我的代码看起来有些混乱 显然,代码很少,但是它说明了我的示例。在这些
问题内容: 我知道这是指当前对象。但我不知道何时真正需要使用它。例如,如果我使用x而不是某些方法,会有什么区别吗?可能会引用所考虑方法的局部变量吗?我的意思是仅在此方法中可见的变量。 那呢 我可以使用吗?我应该使用它吗?如果仅使用,默认情况下是否不会将其应用于当前对象? 问题答案: 该关键字在三种情况下,主要使用。第一种也是最常见的是使用方法消除变量引用的歧义。第二种是当需要将当前类实例作为参数传
问题内容: 这是有错误的部分。 致命错误:第6行/pb_events.php中不在对象上下文中时使用$ this 第6行是: 非常感谢!欣赏! 问题答案: $这仅在方法中有意义,在函数中没有意义 还行吧 这不是 //编辑:没有注意到他将“ $ this”作为参数传递 建议:只需将“ $ this”替换为“ $ somethingElse”
问题内容: 我刚遇到一个非常复杂的查询,要花8秒钟才能运行。EXPLAIN显示了一个奇怪的表顺序,即使使用FORCE INDEX提示也没有全部使用我的索引。我遇到了STRAIGHT_JOIN连接关键字,并开始用它替换一些INNER JOIN关键字。我注意到速度有了很大提高。最终,我为此查询将所有INNER JOIN关键字替换为STRAIGHT_JOIN,它现在可以在0.01秒内运行。 我的问题是何
问题内容: 我经常发现自己需要使用matplotlib在Python中创建热图样式的可视化效果。Matplotlib提供了几种功能,它们显然可以完成相同的操作。 建议代替但是什么之间的差值(从实用的角度作为数据绘图仪)和?相互使用时的利弊是什么?在哪种情况下,一个或另一个将是明显的赢家? 问题答案: 从根本上讲,假定数组中的所有数据元素均应以相同的大小呈现,而/将数据数组的元素与矩形元素(其大小可
你能帮我用下面的代码吗。错误是:“不能在静态上下文中使用此”