質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

1161閲覧

ライブラリの単体実行

al_aya_yuka

総合スコア98

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/08/03 07:47

いつもお世話になっております。

PHPでPythonでいうところの下記の実装方法についてお伺いさせてください。

python

1if __name__ == "__main__": 2

ライブラリの作成をしています(大したものではございませんが)。
ライブラリそのものを実行した場合のみ、コードの実行を可能にしておきたいです。
(requireなどでは実行されないように)
できれば、今後のデバッグのため、コードそのものは残しておきたいのですが、コメントアウト以外の手法があれば採用したいしたいです。
いったん以下のように書いてみて、それなりに動いているのですが心配になり、お知恵を拝借したく、質問させていただきました。

php

1if(realpath($argv[0]) === __FILE__){ 2}

よろしくお願いいたします m(__)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

定番の方法があるかどうかわかりませんが、わたしは昔このように書いていました。

php

1if (!debug_backtrace(false)) { 2 // main なコード 3}

ただし、PHP の場合シェバング #!/usr/bin/php を書いたソースファイルを requireinclude すると、それが出力されることを回避できないと思うので、そのような実装自体があまりオススメできないと思います。

PSR でも、実行用のソースファイルと、クラスや関数定義のソースファイルは分けることが奨励されていたと思います。


なお、PHP では、php コマンドから直接実行されたファイルでのみ先頭の #! で始まる行が無視されるようになっているようです。

それ以外の php ファイルではシェバングっぽい記述も通常の php のコードと同じく、単に出力されます。

投稿2015/08/03 08:32

編集2015/08/03 08:35
ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問