A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>print_r ($a);
>としてもおそらく$aの中身は変わらないままなのです。
え~と・・・
$dataに代入しないと、参照渡しの効果は得られないかと?
$retをあえてつかうならこんな感じ?
<?PHP
function hoge(&$data,$key){
$ret=&$data[$key];
$ret="xyz";
}
$a=array("aaa"=>"x","bbb"=>"y","ccc"=>"z");
$b="aaa";
hoge($a,$b);
print_r($a);
?>
ありがとうございます。
そうなんです。
同じスコープ内(hoge関数内)であれば変更は確かに
反映されるんですが、関数を抜けた後に$retの内容
を変更したりして$dataの中身を変更していきたかったのです。
性質上$retをオブジェクトにしてそのプロパティに
$ret=new DummyClass;
$ret->property=$data[$key];
とかすれば目的は達成できるのですが、なんの意味も
ないのにオブジェクトを生成してプロパティに値を入れる
というのも全くもってスマートではないですし・・
やっぱり諦めて別のアプローチを探すしかないかもしれないですね。
No.1
- 回答日時:
2番目のやつはretが変数になっていません
参照渡しについて誤解があるのでは?
function hoge($data,$key,&$ret){
$ret=$data[$key];
}
$a=array("aaa"=>"x","bbb"=>"y","ccc"=>"z");
$b="aaa";
hoge($a,$b,$c);
print $c;
ご回答ありがとうございます。
急いで質問用に関数を書いたためミスしてしまいました。
一つ目の関数にも return がないですね。
すいません。
実際のコードにはご指摘頂いた文法間違いはないです。
提示頂いたコードなのですが、$data引数も参照渡しに
していただきたいのです。
そして、関数外で$cの内容を変更して
print_r ($a);
としてもおそらく$aの中身は変わらないままなのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- UNIX・Linux UbuntuにROSをインストールしたい 1 2023/03/06 12:28
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPで連想配列のプルダウンメニ...
-
マッチング処理(1:N)
-
VB.NET で 二次元のハッシュは...
-
スカラーのベクトル微分
-
PHPでの簡易ビンゴゲームでの疑...
-
PHPでテキストファイルの一部を...
-
別ファイルの構造体の値を読み...
-
配列を分解したいのですが
-
バイナリファイルの内容を、そ...
-
C言語で全角文字の扱いについて
-
verilogで、配列の一部をタスク...
-
ヒアドキュメントの中のfor文
-
配列をループでたくさん宣言し...
-
複数行のデータのPOST処理に関して
-
配列を回すとき、最後の要素だ...
-
String だと「 ByRef引数の型が...
-
配列一致(要素順番は違うが内容...
-
phpで、連想配列を普通の配列に...
-
OCI で、SELECT結果行数を取得...
-
MYSQLとPHPによって取得する多...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
foreachで上限回数指定方法また...
-
VB.NET で 二次元のハッシュは...
-
PHP、{}記号の意味
-
マッチング処理(1:N)
-
sqlのデーターを『あ行』『か行...
-
3つの連想配列を交互に代入し...
-
smartyのforeachの使い方
-
Smartyでインクリメント
-
Excel VBAでフィルター後の対象...
-
連想配列でキーを利用して一部...
-
ラジオボタンをランダムに表示...
-
ftokが動かない?
-
配列からプルダウン用のHTMLを生成
-
リストボックス複数選択抽出方法
-
関数の引数に配列を初期化なしで。
-
foreachの間にテーブルの<TR>を...
-
smartyでtplファイルでの2次元配列
-
PHPで変数名にハイフンを使うに...
-
PHPでJSONを扱うときに配列の参...
-
PHPで連想配列のプルダウンメニ...
おすすめ情報