how to call a non static method in a static function in php code example
Example 1: php call non static method from static method
class Foo {
private $foo;
private $bar;
public function __construct($foo, $bar)
{
$this->foo = $foo;
$this->bar = $bar;
}
public function fun1()
{
return $this->foo . ' - ' . $this->bar;
}
public static function fun2($foo, $bar)
{
return (new self($foo, $bar))->fun1();
}
}
echo Foo::fun2('foo', 'bar');
Example 2: php access non static function
<?php
class Toys
{
private $toys_name;
public $toys_category;
public static $shop_name;
function Toys($name,$category)
{
$this->toys_name = $name;
$this->toys_category = $category;
}
public function getToyName()
{
return $this->toys_name;
}
public function getToyCategory()
{
return $this->toys_category;
}
public function getToyShop_nonStatic()
{
return self::getToyShop();
}
public static function getToyShop()
{
return self::$shop_name;
}
public static function setToyShop($shopname)
{
self::$shop_name=$shopname;
}
}
$objToys = new Toys("Battery Car","Battery Toys");
$toys_name = $objToys->getToyName();
$toys_category = $objToys->getToyCategory();
echo "<br/>Toy: " . $toys_name . ", Category: " . $toys_category;
Toys::$shop_name = "Disney";
$shop_name = Toys::getToyShop();
echo "<br/>Shop Name: " . $shop_name;
Toys::setToyShop("ToyShop");
$shopname = Toys::getToyShop_nonStatic();
echo "<br/>Shop Name via non static function: " . $shopname;
?>