如何访问继承到我们调用的php类的变量?
我们有两个A类和B类:如何访问继承到我们调用的php类的变量?,php,class,Php,Class,我们有两个A类和B类: class A{ var $settings; function getinfo(){ $settings['domain']="mydomain"; $settings['pass']="1234"; return $settings; } } class B extends A{ $ads = A::getinfo(); function makeurl(){ return "template/".$ads['domain']; }
class A{
var $settings;
function getinfo(){
$settings['domain']="mydomain";
$settings['pass']="1234";
return $settings;
}
}
class B extends A{
$ads = A::getinfo();
function makeurl(){
return "template/".$ads['domain'];
}
}
现在我的页面中有一个B的实例,但我需要“pass”,可能是这样的代码:
$theme=new B();
$mypass = $theme->A->getinfo;
echo $mypass[$pass];
我知道这段代码有很多错误,但我写不出更好的。是否有任何解决方案可以在不创建密码实例的情况下访问密码?是。就这么简单:
$theme = new B();
$mypass = $theme->getinfo();
echo $mypass['pass'];
您还可以稍微改进您的课程:
class A
{
var $settings;
function getinfo()
{
$this->settings['domain'] = "mydomain";
$this->settings['pass'] = "1234";
return $this->settings;
}
}
class B extends A
{
function makeurl()
{
$this->getinfo();
return 'template/' . $this->settings['domain'];
}
}
对。就这么简单:
$theme = new B();
$mypass = $theme->getinfo();
echo $mypass['pass'];
您还可以稍微改进您的课程:
class A
{
var $settings;
function getinfo()
{
$this->settings['domain'] = "mydomain";
$this->settings['pass'] = "1234";
return $this->settings;
}
}
class B extends A
{
function makeurl()
{
$this->getinfo();
return 'template/' . $this->settings['domain'];
}
}
既然B是A的子类,为什么不从B实例调用A中的设置变量呢?既然B是A的子类,为什么不从B实例调用A中的设置变量呢?如果我理解正确的话,您非常接近:
$theme=new B();
$settings = $theme->getinfo();
$mypass = $settings['pass'];
echo $mypass;
如果我没弄错的话,你很接近:
$theme=new B();
$settings = $theme->getinfo();
$mypass = $settings['pass'];
echo $mypass;
如果B扩展了A,则A的所有受保护和公共成员都将继承到B中,因此您可以直接访问它们
class A {
protected $foo;
public function __construct() { $this->foo = 1; }
}
class B extends A {
public function bar() {
echo $this->foo;
}
}
$b = B();
$b->bar();
如果B扩展了A,则A的所有受保护和公共成员都将继承到B中,因此您可以直接访问它们
class A {
protected $foo;
public function __construct() { $this->foo = 1; }
}
class B extends A {
public function bar() {
echo $this->foo;
}
}
$b = B();
$b->bar();
请尝试以下代码:
<?php
class A
{
var $settings;
function getinfo()
{
$settings['domain'] = "mydomain";
$settings['pass'] = "1234";
return $settings;
}
}
class B extends A
{
function makeurl()
{
$ads = $this->getinfo();
return "template/" . $ads['domain'];
}
}
$theme=new B();
$mypass = $theme->getinfo();
echo $mypass['pass'];
尝试以下代码:
<?php
class A
{
var $settings;
function getinfo()
{
$settings['domain'] = "mydomain";
$settings['pass'] = "1234";
return $settings;
}
}
class B extends A
{
function makeurl()
{
$ads = $this->getinfo();
return "template/" . $ads['domain'];
}
}
$theme=new B();
$mypass = $theme->getinfo();
echo $mypass['pass'];
将设置设为一个公共静态变量怎么样?通过将其设置为类变量,您将不需要a的实例
class A {
public static $settings;
// getter and setter methods here
}
// code elsewhere
echo A::$settings['pass'];
另外,因为类B扩展了A,所以它继承了方法和属性,所以您可以调用
$theme = new B();
$mySettings = $theme->GetInfo();
将设置设为一个公共静态变量怎么样?通过将其设置为类变量,您将不需要a的实例
class A {
public static $settings;
// getter and setter methods here
}
// code elsewhere
echo A::$settings['pass'];
另外,因为类B扩展了A,所以它继承了方法和属性,所以您可以调用
$theme = new B();
$mySettings = $theme->GetInfo();
是的,这些天我大部分时间都在写python,这一条滑倒了:)谢谢。:)我认为OP需要一个好的教程来学习基础知识。。。visibility/scope是第2课的内容,是的,这些天我写的大部分都是python,这一条滑了一下:)谢谢。:)我认为OP需要一个好的教程来学习基础知识。。。可见性/范围是第2课的内容,IMOOP似乎正在学习基础知识。这应该在第二课中讲。。。IMOOP似乎正在学习基础知识。这应该在第二课中讲。。。依我所见