(PHP 4 >= 4.1.0, PHP 5, PHP 7)
はじめに
com クラスにより、OLE 互換の COM オブジェクトのインスタンスを作成し、 そのメソッドをコールしたりそのプロパティにアクセスしたりすることが 可能となります。
クラス概要
com extends variant {
public __construct
( string $module_name
[, array|string|null $server_name
= null
[, int $codepage
= CP_ACP
[, string $typelib
= ""
]]] )
}
Overloaded Methods
返されるオブジェクトは、オーバーロードされたものです。つまり、 PHP 側では通常のクラスのメソッドは見えないということです。 その代わりに、プロパティやメソッドへのアクセスは COM を通じて行います。
参照渡しのパラメータを受け付けるメソッドを PHP が 自動検出するようになりました。それらのメソッドについては、PHP が自動的に 変数を参照渡し形式に変換します。つまり、メソッドのコールをより自然に 行えるということです。コードの中で特別な処理をする必要はありません。
com の例
例1 com の例 (1)
<?php// word を起動します$word = new com("word.application") or die("Unable to instantiate Word");echo "Loaded Word, version {$word->Version}\n";// 前面に移動させます$word->Visible = 1;// 空のドキュメントを開きます$word->Documents->Add();// 何か複雑なことを行います$word->Selection->TypeText("This is a test...");$word->Documents[1]->SaveAs("Useless test.doc");// word を閉じます$word->Quit();// オブジェクトを開放します$word = null;?>
例2 com の例 (2)
<?php$conn = new com("ADODB.Connection") or die("Cannot start ADO");$conn->Open("Provider=SQLOLEDB; Data Source=localhost;Initial Catalog=database; User ID=user; Password=password");$rs = $conn->Execute("SELECT * FROM sometable"); // Recordset$num_columns = $rs->Fields->Count();echo $num_columns . "\n";for ($i=0; $i < $num_columns; $i++) { $fld[$i] = $rs->Fields($i);}$rowcount = 0;while (!$rs->EOF) { for ($i=0; $i < $num_columns; $i++) { echo $fld[$i]->value . "\t"; } echo "\n"; $rowcount++; // increments rowcount $rs->MoveNext();}$rs->Close();$conn->Close();$rs = null;$conn = null;?>
目次
- com::__construct — com クラスのコンストラクタ
/* メソッド */