クラスの値が変更されません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ゆうたろう

クラスの値が変更されません

#1

投稿記事 by ゆうたろう » 13年前

以下のコードでfunction lwws内にプリントした構造体$xには値が入ってますが
外でプリントしたxには値が入ってません。これはなぜでしょうか。
言語はphpです。




<?php



function lwws($i){

$x[$i]->num = "あ";
$x[$i]->sm = "い";
$x[$i]->imgurl = "う";
$x[$i]->tltle = "え";
$x[$i]->setsumei = "お";
$x[$i]->mylist = "999";



var_dump($x);

}


//クラスで構造体を作る。public変数は個人の名前・年齢・体重みたいな
class A
{
public $num;
public $sm;
public $imgurl;
public $tltle;
public $setsumei;
public $view;
public $mylist;
public $coment;
public $URL;
public $tag;

}

$x[131] = new A;//ここが構造体の宣言。左辺に要素数書くと構造体の配列になる。要素数以上にアクセスしても自動で追加される





for($i=0 ; $i<30; $i++) {
lwws($i);
}

var_dump($x);

?>

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: クラスの値が変更されません

#2

投稿記事 by softya(ソフト屋) » 13年前

読みづらいのでcodeタグをご利用ください。
※PHPとはいえ、ちゃんとインデントされるべきだと思います。

【追記】
PHPにおけるローカル変数とグローバル変数、あと参照も勉強されたほうが良いでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ゆうたろう

Re: クラスの値が変更されません

#3

投稿記事 by ゆうたろう » 13年前

publicになってるので外部から参照できるはずなんですができません
cでいうグローバル変数みたいなものなら関数内で値を変更できると思ったんですが・・・

ゆうたろう

Re: クラスの値が変更されません

#4

投稿記事 by ゆうたろう » 13年前

phpではグローバル変数を使う場合globalと関数内で宣言するみたいですね
事故解決しました
function lwws($i){
global $x;
$x[$i]->num = "あ";
$x[$i]->sm = "い";
$x[$i]->imgurl = "う";
$x[$i]->tltle = "え";
$x[$i]->setsumei = "お";
$x[$i]->mylist = "999";



var_dump($x);

}

閉鎖

“C言語何でも質問掲示板” へ戻る