getImages($ID) という独自で作った関数での疑問ですが、引数に、整数をセットすると、画像ファイルへのパスを取り出す単純な関数です。
これに、直接、整数値を入れて、
(例えば 引数に適当に34)
$data = getImages(34);
print_r($data);
のようにすると、この場合は、print_r()で確認すると、値は入っているのですが
Array
(
[img] => Array
(
[0] => img/30287978.jpg
)
)
多次元配列に入った数値をそのまま代入すると、同じように出力しても、空で出力されます。
$data = getImages($number['user_id'][0]['image']);
print_r($data);
Array
(
[img] => Array
(
)
)
これはなぜなんでしょう? 解決したいのですが、もし心当たりがありましたら、アドバイスください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
どういうときに、どんな風にダメなのかを調べて、法則を見つけて直す。
プログラミングはそれの繰り返しです。
今回の場合、
・入力が、getImages関数が期待するものではない
・getImages関数が、期待とは違う動作をしている
の2つがまず考えられます。
> $number['user_id'][0]['image'] をechoしてみると、数値は表示される
とあります。
ならば、それを直接getImagesに指定したらどうなりますか?
「数値は表示される」は本当に「数値」なのでしょうか?
「数字の並んだ文字列」だったりしませんか?
表示したときに同じに見えても、内部では「数値」と「文字列」は別扱いされます。
$data = getImages(34);
だと大丈夫で
$data = getImages('34');
だとだめだとか。
http://php.net/manual/ja/function.var-dump.php
print_rではなく、var_dump ならどうなりますか?
また、その「数値」を指定したときに、
「対応する画像が無いので空になる」
のが
「正しい動作」
ということも考えられます。
ありがとうございます。要因は後者のほうでした。変数が空でした。
簡単なSNSを作っているのですが、新規会員登録した方の画像を表示する部分を作っていました。また、その部分をループで引数に入れて出力していたのですが、新規ということで画像を登録していなかったので、表示することができないという、なんとも初歩的なミスでした。また、確認で出力する際は、検証するために、既に画像を設定した会員のIDの数値を直接使っていたので、気づきませんでした。
No.1
- 回答日時:
途中にある
Array
(
[img] => Array
(
[0] => img/30287978.jpg
)
)
とその次の
$data = getImages($number['user_id'][0]['image']);
との間にはどのような関係があるのでしょうか?
ただ, このような質問は, まずはその関数を作った人間にするべきだと思うよ.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Ruby プログラミング 3 2023/06/09 14:30
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Resource id #3 と表示されま...
-
行数が30万件ほどあるCSVから、...
-
別ファイルの構造体の値を読み...
-
複数行のデータのPOST処理に関して
-
Ethnaでのsection使用法
-
ヒアドキュメントの中のfor文
-
smartyでページングするには
-
自動で番号を振りたい
-
C言語でCSVファイルの行数を読...
-
PHPでCSVの一部の行を編集したい
-
配列を回すとき、最後の要素だ...
-
file_existsでファイル名の部分...
-
エラーの原因について
-
配列をループでたくさん宣言し...
-
配列の何番目かを出力したい
-
String だと「 ByRef引数の型が...
-
プルダウンメニューにDBの内容...
-
3つの連想配列を交互に代入し...
-
スカラーのベクトル微分
-
php で1から100までの素数の表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
CSVファイルの最終行のデー...
-
stdClass Objectを連想配列のよ...
-
複数行のデータのPOST処理に関して
-
ヒアドキュメントの中のfor文
-
Resource id #3 と表示されま...
-
エラーメッセージ(無効な間接...
-
自動で番号を振りたい
-
PHPでCSVの一部の行を編集したい
-
C言語でCSVファイルの行数を読...
-
バイナリファイルの内容を、そ...
-
CSVデータの行数カウントをした...
-
ログファイルの古い日付の行を...
-
While文を使って配列の中身を全...
-
csvの内容を行単位で削除したい
-
多次元配列の一次元目の最大値...
-
pythonのファイルの並びでの読...
-
配列同士の足し算のループ処理
-
【PHP】csvファイルへの書き出...
-
配列をファイルに書き込む方法
おすすめ情報
関数にセットした、 $number['user_id'][0]['image'] をechoしてみると、数値は表示されるので、中身は入っています。