コード例 #1
0
ファイル: type_hinting_001.php プロジェクト: lihuibin/jphp
interface Foo
{
    function a(Foo $foo);
}
interface Bar
{
    function b(Bar $bar);
}
class FooBar implements Foo, Bar
{
    function a(Foo $foo)
    {
        // ...
    }
    function b(Bar $bar)
    {
        // ...
    }
}
class Blort
{
}
$a = new FooBar();
$b = new Blort();
$a->a($b);
$a->b($b);
?>
--EXPECTF--

Recoverable error: Argument 1 passed to FooBar::a() must implement interface Foo, instance of Blort given, called in %s on line 27, position %d and defined in %s on line 12, position %d
コード例 #2
0
ファイル: FooBarTest.php プロジェクト: rsaugier/ytest
 public function testBackupStaticProperty_priv_nochange()
 {
     $this->assertEquals(135, FooBar::getPrivStat());
 }
コード例 #3
0
    }
    function pang()
    {
        return "FooBar2::pang();";
    }
}
class FooBar3 extends Bar
{
    function cheer()
    {
        return "FooBar3::cheer();";
    }
}
$b = new Bar();
$f = $b->create();
$fb = new FooBar();
$fb2 = new FooBar2();
$fb3 = new FooBar3();
check::equal($fb->used(), "Foo::pang();Bar::pong();Foo::pong();FooBar::ping();", "bad FooBar::used");
check::equal($fb2->used(), "FooBar2::pang();Bar::pong();Foo::pong();FooBar2::ping();", "bad FooBar2::used");
check::equal($b->pong(), "Bar::pong();Foo::pong();Bar::ping();", "bad Bar::pong");
check::equal($f->pong(), "Bar::pong();Foo::pong();Bar::ping();", "bad Foo::pong");
check::equal($fb->pong(), "Bar::pong();Foo::pong();FooBar::ping();", "bad FooBar::pong");
$method = new ReflectionMethod('Bar', 'ping');
check::equal($method->isProtected(), true, "Foo::ping should be protected");
$method = new ReflectionMethod('Foo', 'ping');
check::equal($method->isProtected(), true, "Foo::ping should be protected");
$method = new ReflectionMethod('FooBar', 'pang');
check::equal($method->isProtected(), true, "FooBar::pang should be protected");
$method = new ReflectionMethod('Bar', 'cheer');
check::equal($method->isProtected(), true, "Bar::cheer should be protected");
コード例 #4
0
/**
 * @package pkg1
 */
function foo($foo = array())
{
    foreach ($foo as $bar) {
        FooBar::y($bar);
    }
}
 public static function testGetNodeMetricsReturnsExpectedCboWithStaticReference()
 {
     return FooBar::baz();
 }
 public function __construct()
 {
     FooBar::$_foo = 23;
 }
コード例 #7
0
ファイル: 01_singleton.php プロジェクト: neves/phptraits
<?

trait Singleton
{
  protected static $_singleton_instance = null;

  public static function getInstance()
  {
    if ( ! self::$_singleton_instance )
    { 
      $class = get_called_class(); 
      self::$_singleton_instance = new $class;
    }
    return self::$_singleton_instance;
  }
}

class FooBar
{
  use Singleton;
}

$a = FooBar::getInstance();
$b = FooBar::getInstance();

var_dump($a === $b);
コード例 #8
0
ファイル: classes.php プロジェクト: kingsj/core
 public function foo()
 {
     FooBar::bar();
     $bar = 'foo';
     $foo = true;
 }