phpで構造体

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

phpで構造体

#1

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

phpで構造体みたいなのって無いでしょうか?
データをまとめて保存したいのでこれが無いと不便です
調べてみたらクラスをできるとそれができるらしいんですが
サンプルが少なくてよくわかりません。
クラスからtxtファイルをまとめて読み込むのと書き込むやり方を教えて頂きたいです
よろしくお願いします

ホヅミ
記事: 110
登録日時: 9年前

Re: phpで構造体

#2

投稿記事 by ホヅミ » 7年前

とはいったもののほぼ丸投げ状態なのでどこまで調べられたか、ゆうたろうさんがどの程度の知識を持っているかこちらとしてはわかりません。
「php 構造体」と「php テキストファイル」 で検索をかけてでた二つのサンプルを一緒にするとまず間違いないでしょう。

【PHP/C言語でいう構造体(struct)を使う方法】
http://tobysoft.net/wiki/index.php?PHP% ... A%FD%CB%A1
【そふぃのPHP入門-ファイルの読み込み1】
http://nyx.pu1.net/practice/file_ope/file_ope3.html

ここを読んでわからなかったとき、お知らせ願います。

たかぎ
記事: 328
登録日時: 9年前
住所: 大阪
連絡を取る:

Re: phpで構造体

#3

投稿記事 by たかぎ » 7年前

方法としては二つあるかと思います。

ひとつはクラスを構造体のように使う方法です。

コード:

<?php
class A
{
  public $a;
  public $b;
}

$x = new A;
$x->a = 123;
$x->b = $x->a;
printf("%d\n", $x->b);
?>
もうひとつは、連想配列を使う方法です。

コード:

<?php
$x = array('a' => 123, 'b' => 0, 'c' => 0);
$x['b'] = $x['a'];
printf("%d\n", $x['b']);
?>
シンタックス的にCの構造体に近いのはクラスでしょうね。

ゆうたろう

Re: phpで構造体

#4

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

こんな感じですね。うまくいきました。いろいろと試してみます
class A
{
public $a;
public $b;
public $c;
public $d;
public $e;
public $f;


//メソッドを定義
function add() {
$filename2 = 'log.txt';
$handle = fopen($filename2, "r");
$contents = fread($handle, filesize($filename2));
fclose($handle);
$sp = split("\n", $contents);
$x->a;
$x->b;
$x->c;
$x->d;
$x->e;
$x->f;

printf("%s\n", $sp);
}
}

$x = new A;
$x->a = 123;
$x->b = $x->a;


$x->add();

ゆうたろう

Re: phpで構造体

#5

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

メソッドじゃなく関数にしたほうがいいですね



function add() {
$filename2 = 'test.txt';
$handle = fopen($filename2, "r");
$contents = fread($handle, filesize($filename2));
fclose($handle);
$sp = split("\n", $contents);//これでtxtの内容一行ごとに配列入れた

for($i=0 ; $i<sizeof($sp); $i++) {//タグは複数あるので全展開して$tagに入れてる。要素数不明な配列を全て展開するにはこうする
preg_match("/^(\d+)<>(\d+)/", $x[$i]->a, $a[$i]->b);//‏配列$sp[0]にある区切りの規則に則り配列$a[0]に順次入れていく
}


}
//クラスで構造体を作る。public変数は個人の名前・年齢・体重みたいな
class A
{
public $a;
public $b;
public $c;
public $d;
public $e;
public $f;
public $g;
public $h;
public $i;

}

$x[12] = new A;//ここが構造体の宣言。左辺に要素数書くと構造体の配列になる
$x[2]->a = 123;
$x[2]->b = $x[2]->a;

var_dump($x[2]);

閉鎖

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