来自C++背景;)
如何重载PHP函数?
一个函数定义是否有任何参数,另一个函数定义没有参数?在PHP中有可能吗?或者我应该使用if else来检查是否有从$ _GET和POST传递的参数?和他们联系?
我对php手册中的一个例子感到困惑.这是关于可见性的.这是一个例子.
class Bar {
public function test() {
$this->testPrivate();
$this->testPublic();
}
public function testPublic() {
echo "Bar::testPublic\n";
}
private function testPrivate() {
echo "Bar::testPrivate\n";
}
}
class Foo extends Bar {
public function testPublic() {
echo "Foo::testPublic\n";
}
private function testPrivate() {
echo "Foo::testPrivate\n";
}
}
$myFoo = new foo();
$myFoo->test();
?>
Run Code Online (Sandbox Code Playgroud)
http://www.php.net/manual/en/language.oop5.visibility.php
这个例子输出
Bar::testPrivate
Foo::testPublic
Run Code Online (Sandbox Code Playgroud)
请问你能解释一下这是怎么回事吗?
为什么两个testPublic()
都不叫?
我把一个var_dump($this)
Bar类构造.它打印object(Foo)[1]
.我所知道的是私有属性可以用同一个类调用.
然后如何Bar::testPrivate
调用" "?
这实际上来自一个特定的WordPress问题,但它背后有一个更普遍的PHP点,我有兴趣知道答案.
WordPress类是这样的:
class Tribe_Image_Widget extends WP_Widget {
function example_function(){
// do something useful
}
}
Run Code Online (Sandbox Code Playgroud)
PHP中有什么办法可以example_function()
从课外替换吗?
我想要这样做的原因是该类来自其他人的WP插件(并且在该类中有几个函数),我想继续接收插件的更新,但我希望其中一个功能适应.如果我更改插件,那么每次我都会丢失所有更改.所以如果我有自己的插件只是改变了一个功能,我就避免了这个问题.
我只想创建像getFieldname()
magento 中一样的函数。
例如:
在 Magento 中
getId()
ID
- 返回字段值
getName()
Name
- 返回字段值
我怎样才能创建这样的功能?在这种情况下请帮助我..
我想做的就像下面的代码一样,
Class Called{
$list=array();
function __construct() {
$this->list["name"]="vivek";
$this->list["id"]="1";
}
function get(){
echo $this->list[$fieldname];
}
}
$instance=new Called();
$instance->getId();
$instance->getName();
Run Code Online (Sandbox Code Playgroud) php ×4
overloading ×2
overriding ×2
arguments ×1
c++ ×1
class ×1
function ×1
magento ×1
oop ×1
visibility ×1
wordpress ×1