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

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

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

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

4回答

3846閲覧

PHPにおいて、配列に変数を格納できない!!

Shinog

総合スコア99

PHP

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2015/06/09 08:06

はじめまして。
現在、POSTで送られた変数を配列に格納しようとトライしているのですがエラーが出てしまいます。

何かご存知の方は是非ご教授の程よろしくお願いします!!

lang

1<?php 2 3 4 $ItemPrice = $_POST["itemprice"]; 5 $ItemQty = $_POST["itemQty"]; 6 $ItemTotalPrice = $ItemPrice*$ItemQty; 7 8 9 $purchase_details = array( 10 'amount' => $ItemTotalPrice, 11 'items' => array( 12 array( 13 'item_amount' => $ItemPrice, 14 'item_quantity' => $ItemQty, 15 ), 16 ) 17 ); 18?> 19

Notice: Undefined variable: ItemTotalPrice in 略
Notice: Undefined variable: ItemPrice in 略
Notice: Undefined variable: ItemQty in 略

ちなみに、変数をechoで出力した場合は正常に表示されました。

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

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

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

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

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

guest

回答4

0

ベストアンサー

Notice: Undefined variable:メッセージが表示されている場合、変数定義が無効または変数が定義されていない事を意味します。

確かに、エラーレベルなどで表示を非表示にする事も可能ですが、この方法は、ある意味エラーハンドリング不足という別の意味を示す可能性があり余りお勧めできない方法だと思います。

<?php //変数初期化 noticeエラー対策 $ItemPrice = 0; $ItemQty = 0; $ItemTotalPrice = 0; //値受け取り //値がPOSTされていた場合、変数を格納 if(isset($_POST["itemprice"])) $ItemPrice = $_POST["itemprice"]; if(isset($_POST["itemQty"])) $ItemQty = $_POST["itemQty"]; $ItemTotalPrice = $ItemPrice*$ItemQty; //配列に格納 $purchase_details = array( 'amount' => $ItemTotalPrice, 'items' => array( 'item_amount' => $ItemPrice, 'item_quantity' => $ItemQty, ) ); ?>

投稿2015/06/09 12:14

takayukiinaba

総合スコア1158

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

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

0

丁寧に書くならこんな感じかと・・・。

lang

1<?php 2 //変数初期化 noticeエラー対策 3 $ItemPrice = 0; 4 $ItemQty = 0; 5 $ItemTotalPrice = 0; 6 7 //値受け取り 8 $ItemPrice = $_POST["itemprice"]; 9 $ItemQty = $_POST["itemQty"]; 10 $ItemTotalPrice = $ItemPrice*$ItemQty; 11 12 //配列に格納 13 $purchase_details = array( 14 'amount' => $ItemTotalPrice, 15 'items' => 16 array( 17 'item_amount' => $ItemPrice, 18 'item_quantity' => $ItemQty, 19 20 ) 21 ); 22 23?>

処理に何の問題もなくエラー文がウザいと思うなら下記の文をファイルの最初に追記すればいいと思います。

lang

1<?php 2//エラー文制御 3ini_set('display_errors', '0'); 4 5処理・・・ 6?>

投稿2015/06/09 12:03

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

配列を関数内に置いていたため、関数外のPOST情報を読み取ることが出来ないことが原因でした。
なので、POST情報の読み込みコードを関数内に書き込むことで解決できました。

回答を下さった皆様、ありがとうございます。

投稿2015/06/10 07:28

Shinog

総合スコア99

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

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

0

やりたいことはこれじゃないですか?
'items' => array(
'item_amount' => $ItemPrice,
'item_quantity' => $ItemQty,
)

投稿2015/06/09 08:55

MasaakiIrie

総合スコア1021

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問