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

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

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

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

Q&A

解決済

2回答

3869閲覧

phpのプログラムを実行するとrequireでエラーになります

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

0クリップ

投稿2020/02/01 00:35

phpの参考書で勉強中です。
windows10、XAMPP for windows 7.3.12を使っています。
以下のphpのプログラムを実行するとrequireでエラーになります。
エラーでは'restaurant-functions.php'が開けないか、ファイルがないと
でています。コードをチェックしましたが、どこも悪くないようなのですが、解決できないので教えてくださいお願い致します。

php

1<?php 2 // 別ファイルの参照 3 require 'restaurant-functions.php'; 4 // 25ドルの請求に加え8.25%の税金と20%のチップ 5 $total_bill = restuarant_check(25,8.875,20); 6 7 // 手持ちは30ドル 8 $cash = 30; 9 10 print "I need to pay with ".payment_method($cash,$total_bill);コード

PHP

1// 返り値の型の宣言 2 function restaurant_check($meal,$tax,$tip){ 3 $tax_amount = $meal*($tax/100); 4 5 $tip_amount = $meal*($tip/100); 6 7 $total_amount = $meal + $tax_amount + $tip_amount ; 8 9 return $total_amount; 10 } 11

PHP

1// 複数のreturn文を持つ関数 2 function payment_method($cash_on_hand,$amount){ 3 4 if($amount > $cash_on_hand){ 5 6 return 'credit_card'; 7 8 }else{ 9 return 'cash'; 10 } 11 } 12

error

1Fatal error: Uncaught Error: Call to undefined function restuarant_check() in C:\xampp\htdocs\php_oreilly\chap5\5-27.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\php_oreilly\chap5\5-27.php on line 5 2 3//paiza.io 4//実行エラー 5 6PHP Warning: require(restaurant-functions.php): failed to open stream: No such file or directory in /workspace/Main.php on line 4 7PHP Fatal error: require(): Failed opening required 'restaurant-functions.php' (include_path='.:/usr/share/php') in /workspace/Main.php on line 4 8 9

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

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

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

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

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

guest

回答2

0

・ファイル名を間違えている
・ディレクトリを間違えている
のどちらかです。

カレントディレクトリにそのファイルはありますか?
system("dir");で、カレントディレクトリにあるかどうかわかります

投稿2020/02/01 01:21

otn

総合スコア84507

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

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

退会済みユーザー

退会済みユーザー

2020/02/01 15:02

ありがとうございます。
退会済みユーザー

退会済みユーザー

2020/02/01 15:05

すべてC:\xampp\htdocs\php_oreilly\chap5に入れています。関数のコピペで解決しました。周りに聞ける人がいないので、teratailは助かっています。
guest

0

ベストアンサー

ファイル名合ってないのでは。(あとはパスか)

もし合ってたとしてもundefined functionは出続けます。

定義:restaurant_check
呼出:restuarant_check

手打ちしないこと。
エラーでは「そんな関数見つからん」って言ってるわけなので、
エラーメッセージの「そんな関数」の名称をコピーして探せばすぐ分かります。
コピペというのは効率や手抜きではなく確実にこなすための手段です。

あと、コーディングはIDE使うこと

requireちゃんと通ってれば予測変換や引数の確認もできたはず。

投稿2020/02/01 00:37

編集2020/02/01 01:06
m.ts10806

総合スコア80850

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

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

退会済みユーザー

退会済みユーザー

2020/02/01 15:01

restaurant-functions.phpとその中の関数名restaurant_check、payment_methodをコピペしたら直りました。ありがとうございました。間違っているようには見えなかったですが、どこか間違っていたんですね。 IDEは「Eclipse」を使っていました。「Eclipse」を使うとして、XAMMPとの兼ね合いはどうなるのでしょうか。
m.ts10806

2020/02/01 19:48

>間違っているようには見えなかった ですから、エラーが出てる時点で疑うべきは自身の目検でしょう。人の目なんて信頼できないものです。 特に自分で作った自分のプログラムなら思い込みが必ず入ります。ですから世の中の現場(開発限らず)では二重三重でチェックをするのです。 基本はコピペで検索。プログラムは書いた通りにしか動かないので、調査検証も極めて機械的に行う必要があります。 >IDEは「Eclipse」を使っていました 最後に書いたように、includeがちゃんと通っているのなら、 例えばtest() というメソッドが定義されていれば、te・・・と打っていくたびにサジェストで 絞られていくので、選択候補から選べば間違いなく関数名も選択できますし、 includeも例えばtest.phpが置かれていたら require_once ''; として require_once 't'; と打っていくと同じようにサジェストで参照できるファイルが絞られていって選べます。 このようにサポート機能が充実しているのがIDEなので、使いこなせていないだけだと思います。 >「Eclipse」を使うとして、XAMMPとの兼ね合いはどうなるのでしょうか。 「XAMMP」ではなく「XAMPP」です。こういうところが今回のようなミスに繋がります。 EclipseのプロジェクトルートをXAMPPのhtdocsにするか、 All in one ならXAMPP入りのEclipseもあるので、そちらを使うかどちらかでしょう。 まあそれも「要件次第」です。 複数プロジェクトを作ってそれぞれ別でindexとしたいのでしたらDocumentRootを都度切り替えるか XAMPP自体を複数入れるのもありです。そこはお好きなように。
退会済みユーザー

退会済みユーザー

2020/02/02 06:30

ありがとうございます。たいへんよくわかりました。これぐらいの丁寧な説明で理解できるぐらいのレベルです。
m.ts10806

2020/02/02 08:07

卑下することはないかと。オープンソース故にきちんとした説明書ってなかなかないですし、色々興味もって触ってみることで覚えることもあると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問