<?php

class MyClass
{
    protected $prop1;

    public function __construct($str = substr('hello', 0, 3))
    {
        echo "$str\n";
        echo $this->foo1() . "\n";
        echo self::foo2() . "\n";
        echo $this->prop1 . "\n";
    }

    protected function foo1()
    {
        return 2 + 2;
    }

    protected function foo2()
    {
        return 3 + 3;
    }

    public static function foo3()
    {
        return 'Hello world.';
    }
}

$obj = new MyClass();