phpで構造体みたいなのって無いでしょうか?
データをまとめて保存したいのでこれが無いと不便です
調べてみたらクラスをできるとそれができるらしいんですが
サンプルが少なくてよくわかりません。
クラスからtxtファイルをまとめて読み込むのと書き込むやり方を教えて頂きたいです
よろしくお願いします
phpで構造体
Re: phpで構造体
とはいったもののほぼ丸投げ状態なのでどこまで調べられたか、ゆうたろうさんがどの程度の知識を持っているかこちらとしてはわかりません。
「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
ここを読んでわからなかったとき、お知らせ願います。
「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
ここを読んでわからなかったとき、お知らせ願います。
Re: phpで構造体
方法としては二つあるかと思います。
ひとつはクラスを構造体のように使う方法です。
もうひとつは、連想配列を使う方法です。
シンタックス的にCの構造体に近いのはクラスでしょうね。
ひとつはクラスを構造体のように使う方法です。
<?php
class A
{
public $a;
public $b;
}
$x = new A;
$x->a = 123;
$x->b = $x->a;
printf("%d\n", $x->b);
?>
Re: phpで構造体
こんな感じですね。うまくいきました。いろいろと試してみます
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();
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で構造体
メソッドじゃなく関数にしたほうがいいですね
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]);
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]);