PHP Classes

File: demo.php

Recommend this page to a friend!
  Classes of wim niemans   Arsenal PHP Singleton Trait   demo.php   Download  
File: demo.php
Role: Example script
Content type: text/plain
Description: example script
Class: Arsenal PHP Singleton Trait
Trait to make classes only have singleton objects
Author: By
Last change:
Date: 4 years ago
Size: 2,401 bytes
 

Contents

Class file image Download
<?php

include_once 'arsenal.php';

Class
A
{
use
arsenal;
function
__construct() { echo 'Creating class A as ' . __CLASS__ . " \n"; }
function
sayHello() { echo 'Hello from class ' . __CLASS__ . " \n"; }
}
Class
B
{
use
arsenal;
function
__construct() { echo 'Creating class B as ' . __CLASS__ . " \n"; }
function
sayHello() { echo 'Hello from class ' . __CLASS__ . " \n"; }
}

Class
A1
{
function
__construct($obj) { echo 'Creating class A1 from ' . get_class($obj) . " \n"; }
function
sayHello() { echo 'Hello from class ' . __CLASS__ . " \n"; }
}
Class
A2
{
function
__construct($obj) { echo 'Creating class A2 from ' . get_class($obj) . " \n"; }
function
sayHello() { echo 'Hello from class ' . __CLASS__ . " \n"; }
}
Class
B1
{
function
__construct($obj) { echo 'Creating class B1 from ' . get_class($obj) . " \n"; }
function
sayHello() { echo 'Hello from class ' . __CLASS__ . " \n"; }
}
Class
B2
{
function
__construct($obj) { echo 'Creating class B2 from ' . get_class($obj) . " \n"; }
function
sayHello() { echo 'Hello from class ' . __CLASS__ . " \n"; }
}

$a = new A;
$b = new B;
print_r($a);
print_r($b);

$a->a1->sayHello();
$a->a2->sayHello();
$a->b1->sayHello();
$a->b2->sayHello();
$b->b1->sayHello();
$b->b2->sayHello();

print_r($a);
print_r($b);

$a->a1->sayHello();
$a->a2->sayHello();
$a->b1->sayHello();
$a->b2->sayHello();
$b->b1->sayHello();
$b->b2->sayHello();

$b->a1->sayHello(); // throws error !!

/* Ouputs:
Creating class A as A
Creating class B as B
A Object
(
)
B Object
(
)
Creating class A1 from A
Hello from class A1
Creating class A2 from A
Hello from class A2
Creating class B1 from A
Hello from class B1
Creating class B2 from A
Hello from class B2
Creating class B1 from B
Hello from class B1
Creating class B2 from B
Hello from class B2
A Object
(
    [a1] => A1 Object
        (
        )

    [a2] => A2 Object
        (
        )

    [b1] => B1 Object
        (
        )

    [b2] => B2 Object
        (
        )

)
B Object
(
    [b1] => B1 Object
        (
        )

    [b2] => B2 Object
        (
        )

)
Hello from class A1
Hello from class A2
Hello from class B1
Hello from class B2
Hello from class B1
Hello from class B2

Fatal error: Uncaught Error: Call to a member function sayHello() on null in _test/demo.php:61
Stack trace:
#0 {main}
  thrown in _test/demo.php on line 61
 */
 
?>