• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:require once('***.php'))

require once('***.php')の使い方とは?

このQ&Aのポイント
  • require once('***.php')はオブジェクト指向の項で頻繁に登場する便利な機能です。
  • 具体的な使い方や機能については検索してもなかなか理解しにくいですが、要するに'***.php'を丸ごと取り込む機能です。
  • オンラインの入門書やYouTubeなどで情報を集めると、コピーする方法として使うことができるという内容もあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (742/5653)
回答No.5

回答No.2です。 ・require_onceだと、余計なところもコピーされて 元のファイルも分けなくてはなりません。 require_once ('a.php')はa.phpファイルの全コピーだと 理解してもいいのでしょうか? はい、全コピーです。 わかっていらっしゃるようですね。 余計なところは分けなくてはいけません。 が。 いま、そのへんをつつくと動かなくなりそうなので、 回答No.3さまが言われるように、 まだ使われない方が無難です。 コピーでしのいでください。 私が前回説明したのはファイルがふたつでしたが、 ファイルが何十何百とあるようなシステムの例えで、 何十か所からも読み込まれていたら大変、 と言うことが言いたかったのです。 それと。 オブジェクト指向とrequireが一緒に出てくるとしたら、 各ファイルがひとつのクラスを定義しているのだと想像します。 難しい話しになるので、そこは後回しにしていいと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.4

>$_POSTは理解しなければいけないでしょう。 そうですが、まだ勉強するには早すぎるでしょう。 別に基礎を覚えてからでも遅くはないと思いますよ。 一応 https://www.php.net/manual/ja/language.variables.superglobals.php スーパーグローバルの説明についての、ページを 乗せておきますが。すでに読んでいるとは思いますが。

kouzou250
質問者

お礼

ご回答誠にありがとうございます。 $_POSTが出てくるまでは、オブジェクト指向以外は 理解しました。 フォームに関する章は後回しにします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

結論から言うと、「まだ使わなくてもOK」だとおもう。 恩恵がわからないなら、使っても、面倒が増えるだけで まずメリットがないのでね~ ちなみ。 AがBを参照して、BがAを参照してるINCLUDEがあったら、 どうなるかな~ってのも、考えてみると、楽しいかも それと、一番大事な事 >検索しても納得のいく説明が得られません。 「オブジェクト指向」とrequire何の関係もないです。 そうです。関係がない事なので、答えがないのも当然です。 >$_POSTも分かりにくいです。 スーパーグローバル 宣言しなくても常にいる変数。 他にもいっぱいあるので。 $_SERVERなどをprint_r してみれば、どれだけの量のデータが入ってるか みれるでしょう~ (まともにプログラムするには必須になってくるので) ただいまは見てもあんまりメリットはない。 基礎を覚えるのが先なので。 前にも言ったが、 料理の素人に高級料理のレシピを教えても 無意味なので。 そこまで行けないってわかってるのでね。 (行けないというより行くべきじゃないですね。食材がもったいないだけなので)

kouzou250
質問者

お礼

ご回答誠にありがとうございます。 $_POSTは理解しなければいけないでしょう。 もう1度読み直します。

全文を見る
すると、全ての回答が全文表示されます。
  • dell_OK
  • ベストアンサー率13% (742/5653)
回答No.2

例えば、次のようなみっつのファイルがあったとします。 a.php ---- require_once('c.php'); ---- b.php ---- require_once('c.php'); ---- c.php ---- /* なにかしらの処理 */ ---- a.phpからもb.phpからもc.phpが読み込まれています。 c.phpのなにかしらの処理を修正する必要がでたので修正したとします。 a.phpとb.phpは修正する必要がありません。 一方、「コピーすればいい」の場合、次のようなふたつのファイルになります。 a.php ---- /* なにかしらの処理 */ ---- b.php ---- /* なにかしらの処理 */ ---- それでなにかしらの処理を修正する必要がでた場合にa.phpとb.phpを修正する必要があります。 もちろんa.phpを修正したあとそれをb.phpにコピーすればいいです。 ですが、b.phpにコピーするのを忘れたり、コピーする際に範囲を間違ったりして、動かなくなることがあります。 もちろん動かなければコピーしなおせばいいです。 ですが、そのコピーの手間はおよそ無駄にコストをかけているだけになります。 require_onceで読み込んだ方がコストを削減できることになります。 ただ、複数個所から読み込まれないのに別ファイルになっていることもあります。 ひとつのファイルを巨大化させるより、ある処理のかたまりを別にしておいた方が管理しやすいなどもあります。

kouzou250
質問者

お礼

ご回答誠にありがとうございます。 せっかく例を挙げてご説明くださったのに、 かゆいところが、解りませんでした。 require_onceだと、余計なところもコピーされて 元のファイルも分けなくてはなりません。 require_once ('a.php')はa.phpファイルの全コピーだと 理解してもいいのでしょうか? どうか教えてください。

全文を見る
すると、全ての回答が全文表示されます。
  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.1

require once ではなくて require_once です。 >***.phpを丸っと持ってくる。というイメージです。 >と、YouTubeで聞きましたが、それだったらコピー >すればいいと思います。 >***.phpをどうする機能なのでしょうか? 「***.phpを丸っと持ってくる。というイメージです。」と書かれているような機能ですが。 あなたが「コピーすればいいんだから、そういう機能であるはずがない」と思われようが、それは変わりません。 より厳密には、 ・引数のファイルを読み込む ・既に読み込まれているファイルは2回目以降読み込まない ・読み込めなかった場合には致命的エラーとして処理中断される です。 >オブジェクト指向の項に再三登場します。 >require onceの説明がないのです。 オブジェクト指向の項で探してるとかでしょうか。 オブジェクト指向に関わる機能ではないから別の項にあるんじゃないかなぁ。 もしかして入門書、自分が気になるところだけ拾い読みしてます?

kouzou250
質問者

お礼

ご回答誠にありがとうございます。 拾い読みしていません。 最初から読んで、半分までは「JAVAに比べれば易しいな。」と楽しい気分で読んでいました。 オブジェクト指向で分からなくなりました。 require_onceと関係ないのですか!? オブジェクト指向でrequire_onceがイッパイ出てきた 気がしますけど・・・。 もう1度、読み直します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • require_once で読み込まれたか?

    初心者です。教えて頂けますか? require_once で読み込んだと思われるファイルの機能を使用したのですが、 機能した様子がありません。 require_once で読み込めない場合エラーが出るのでしょうか? 以下の様にしても駄目でした。 どの様にすれば良いでしょうか?よろしくおねがいします。 <?php $result = require_once("Auth/Auth.php"); if( $result == True ){ print("True"); } else { print("False"); } ?>

    • ベストアンサー
    • PHP
  • require_onceでファイルが開けない!?

    requre_onceでのファイルの読み込みが上手くいかないらしく、次のようなエラー文が出てしまい困っております。 =========エラー文=================== Warning: require_once() [function.require-once]: URL file-access is disabled in the server configuration in C:\xampp\htdocs\wakuphp\girlup_result_kanryou.php on line 6 Warning: require_once(http://waku2work.com/mysql2.php) [function.require-once]: failed to open stream: no suitable wrapper could be found in C:\xampp\htdocs\wakuphp\girlup_result_kanryou.php on line 6 Fatal error: require_once() [function.require]: Failed opening required 'http://waku2work.com/mysql2.php' (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\wakuphp\girlup_result_kanryou.php on line 6 ================================ 問題の6行目のソースコードは以下の通りです。 ======ソースコード6行目================= require_once("http://waku2work.com/mysql2.php"); ================================ この場合、”require_once”が読み込めて無いって事ですよね!? 一応初心者なのですが、気になるのは3つ目のエラー表示で、ローカルのパス表示が出てる点です。 設定がうまくいってないのでしょうか? 有識者の方いらっしゃいましたら、どうか宜しくお願いします!

    • ベストアンサー
    • PHP
  • PHPフレームワーク理解に役立つ、オブジェクト指向入門書

    PHPでWEBアプリを作りたいために、html,css,Mysql,PHPなどの基本的な事柄を勉強し、cakePHPというPHPフレームワークを最近使い始めました。オブジェクト指向やクラスについてはPHP入門書に書いてあるのを読んだだけで、なんとなくしか分かっていません。 PHPのオブジェクト指向やフレームワークとのつながりを理解できるような、初心者向けのお勧めの本はないでしょうか? オブジェクト指向について学ぶよい本は探しやすいのですが、PHPフレームワークを理解するために適した本はどれなんだろうと悩んでおります。基本的な概念はすべて同じだから、PHPとかまったく関係なくオブジェクト指向関係の本を読めばいいのでしょうか? 候補の本 ・オブジェクト指向でなぜつくるのか ・Head Firstオブジェクト指向分析設計 ・いちばんやさしい オブジェクト指向の本

    • 締切済み
    • PHP
  • PHP5で自動的にinclude_once

    概要:Apache 2 + PHP5 において、すべてのスクリプトに自動的に、include_onceのような効果を得る方法について教えてください。 詳細: 昔開発していたPHPスクリプトにおいて スクリプト中に include_once や require_once を書かずに スクリプトが呼び出される度に、スクリプトの冒頭で include_once したかのように、パスの設定などを行う初期化スクリプトを include して実行させる方法を取っていたはずなのですが、そのやり方を忘れてしまいました。 初期化スクリプト中では define などをして、スクリプトが依存するライブラリやデータのパスの設定を変数に対して行っており、処理コストの低い簡単な処理も入ります。 すべてのスクリプトにおいて、その変数が示すパスを使ってデータの読み書きを行っています。 その手法は、Apache2 が多目的に使われる場合には、オーバーヘッドあるいは弊害があるだろうというようなものだったと思います。(当時そう思った事をなんとなく覚えている次第です) Apache2がリクエストを受け取る度に、実行されるため、そのスクリプトと関係のない php スクリプトが呼ばれた際にも自動的に取りこまれてパスなどが変数に設定されます。 その Apache 2 は、限定的な用途で利用され、サーバーマシンごと特定用途で利用することを前提としていたため、そういった手法をとったのだと思いますが、詳細は不明です。 おそらく、apache2.conf (あるいは httpd.conf) か php.ini に設定していたと思うんですが、当時の設定ファイルを読み解いても、それらしい記述が見当たらず、ここ数日悩んでおります。 一応、実行環境について書きますと 当時の実行環境は、Windows 2000 + Apache 2 + PHP 3~5(?) + PEAR + MySQL 3(?) で、現在は ubuntu + Apache 2 + PHP5 + PEAR + MySQL 5 で動かそうとしております。 このような内容なのですが、お心当たりのある方は、ご教示お願い致します。

    • ベストアンサー
    • PHP
  • MySQLでパスワードをrequireする意味

    MySQLでデータベースを作成して、データベース認証させてコンテンツを表示するプログラムを書いているのですが、パスワードやユーザー名をルートディレクトリの外に置いてrequire_onceする意味が今ひとつわからないので教えて下さい。 require_once('../../../DBparameter.php'); // DBparameter.phpの中にパスワードやユーザー名 として、ルートディレクトリの外にDBparameter.phpを置けば確かに、パスワードやユーザー名を見ることはできませんが、このプログラムが存在するフォルダ内をのぞけるぐらいの詳しい人であれば、このプログラムを見るのは簡単にできると思うんですが、そうすると、 $con = mysql_connect(host, username, password); などとしてデータベースを開き、結局はデータベース内の情報を抜かれてしまうような気がするのですが、どうなんでしょうか? 確かに、データを抜き取るためのプログラムを他人のドメインにアップロードするのは簡単ではないので、ほとんど無理だとは思うんですが、それならばスクリプト内にパスワードやユーザー名をそのまま書いてもいいのではないかという気がするんです。

    • ベストアンサー
    • MySQL
  • DB.phpが見つからない

    以前、ローカル(Windows2000)上でApache + PHP4 + MySQL1.4でデータベースを使用したPHPのプログラムを作っており、正常に動作もしておりました。 ある時、システムが不安定になってきたのでシステムのリカバリーを行い、あらかじめMySQLのデータとPHPのソースを逃がしておきました。 リカバリー後はせっかくなのでApache2 + PHP5 + MySQL1.4で設定を行い、逃がしておいたデータ等をすべて戻し、PHPを起動してみると、 Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in ファイルパス on line 行数 と、いったエラーが表示されます。 データベースを使用しないPHPのプログラムはすべて動作するのですが、データベースを使用するプログラムはすべて同様のエラーが発生します。 いろいろ、インストールの方法などを確認したのですが、結局何が原因か突き止めることができませんでした。 何かご存知の方、教えてください。

    • ベストアンサー
    • PHP
  • requireやinclude時の階層の書き方

    ずっと困ってます。よろしくお願いします。 読み込む大元のファイル名がindexだとして、その中にrequireを書くとします。 そこからrequireするファイルはindexと同階層にあるaフォルダにあるreq1.phpとします。 さらにreq1.phpからrequireするファイルがあり、同階層(aフォルダ内)にあるreq2.phpとします。 req2.phpはなぜかindexと同階層と、aフォルダ内の、計2カ所に同名の同じファイルがあるとします。 コードを書くと、 index内でrequire_once('a/req1.php'); req1.php内でrequire_once(dirname(__FILE__).'/req2.php'); としています。 この場合、読み込まれるreq2は、req1と同階層にあるものではなく、indexと同階層のものが読み込まれてしまいます。また、indexと同階層のreq2を消しておけば、req1と同階層に置いてあるreq2が読み込まれます。 この辺の挙動が、なぜこうなるのかを説明してください。 特に、 1.dirnameとの関係について 2.別階層に同名ファイルが複数存在の有無に関係なく、とにかくrequireする階層を確実に1つだけに限定する方法について(dirnameではうまくいかないような気がします) の2点は詳しく知りたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP 5 で書かれたオープンソース

    PHP 5で書かれたオープンソースのWEBアプリケーションを探しています。 オブジェクト指向でPHPを書く参考にしたいと思っているので、PHP 5の新機能をふんだんに使っていて、多少なりとも規模の大きいものであればなんでもよいので教えてください。よろしくお願いします。

    • 締切済み
    • PHP
  • PHP5.2.2について

    はじめまして、こんばんは。 PHPを触り始めて間もない者ですが、困り果てて投函させて頂くことにいたしました。 先日、OS(WinXPsp2)を再インストールした際、PHP(5.2.2)、Apache(2.0.59)、MySQL(4.1.22)を以前利用していたものより新しいバージョンをインストールしたのですが、以前作成したスクリプトを表示させたところ、これまで何ら問題ないところでエラーが出てきて、その対処が分からずご指導いただければ・・と思っております。 index.php <?php session_start(); require_once("./auth.php");  ・  ・ auth.php <?php session_start();//Notice: A session had already been started - ignoring session_start() $mail = $_POST['mail'];//Notice: Undefined index: mail $passwd = $_POST['passwd'];//★ if($mail != "" || $passwd != ""){  ・  ・ 上記、コメントの箇所にエラーが出てしまうのですが、これまでは同じソースでも問題がなかったための質問です。説明不足名ところがあるかとは思いますが、上記エラーはインストール時の設定が間違っているのか?それともバージョンによるものなのか?(その場合は対処法など・・)を知りたく投函させていただきました。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • phpでのsql文で変数を使う

    POSTで受け取った文字列を,テーブル名として新規テーブルを作成したいのですが,sql文発行の際の変数の記述方法がわかりません。 ネットや本に書いてある方法は一通りためしたのですが,失敗しましたとなります。 ご教授下さい。 php 5.2.3 apache2.2.4 mysql 5.0.45 <?php require_once("../dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASS); $selectdb = mysql_select_db($DBNAME, $con); $name = $_POST['name']; $sql = "create table $name ( qno int(3), qcontents text(500))"; $rst = mysql_query($sql,$con); if($rst){ echo $name . "を作成しました。"; }else{ echo "データベースの作成に失敗しました。"; } ?>

    • ベストアンサー
    • PHP