定義されてないインターフェイスやclassでもuseステートメントでの宣言の部分では実際の存在チェックが働かないというのは当たり前なんですが、
<?php
use JsonSerializable;
require 'tests/_autoload.php';
var_dump(new \stdClass instanceof JsonSerializable);
などど書くと、PHP Warning: The use statement with non-compound name 'JsonSerializable' has no effect となってあれれーとなりますけれど、これグローバル名前空間内のためなので、
<?php
namespace Userland {
require 'tests/_autoload.php';
use JsonSerializable;
var_dump(new \stdClass instanceof JsonSerializable);
}
と適当な名前空間内に押し込めれば良い。
まあ、
<?php
require 'tests/_autoload.php';
var_dump(new stdClass instanceof \JsonSerializable);
とuse使わなければ、上記エラーはでませんが