<?php
/**
 * サンプルライブラリー
 */

/**
 * ライブラリーで定義している関数の例
 */
function GetGreeting($msg null)
{
    return 
is_null($msg) ? 'Hello World' $msg;
}


// ここから先は直接実行の時のみ動きます。チェックは甘め
if (!count(debug_backtrace()))
{
    
$fp fopen(__FILE__'r');
    
fseek($fp__COMPILER_HALT_OFFSET__ 2); // 2 for ? and >
    
echo stream_get_contents($fp);
    
    
// ここに書くと/htmlタグの下に表示されてしまうが、それが嫌ならやり方は幾つかある
    
echo '直接実行されています';
    echo (int)(
GetGreeting() == 'Hello World');
    echo (int)(
GetGreeting('Hello') == 'Hello');
}


// __halt_compiler以下は直接実行の時のみ表示されます。
// PHPブロックは使えません。
__halt_compiler();?>
<html>
<head>
<title>samplelib.php</title>
</head>
<body>
<h1>このライブラリーの使い方について</h1>
<pre>
    GetGreeting($msg = null) と言う関数が定義されているよ。

    もっと知りたい場合は<a href="http://nonn-et-twk.net/twk/php-halt_compiler-doc">元記事</a>を参照ください。
</pre>
</body>
</html>