如果您對 `print_r($obj)`(其中 `$obj` 是從 COM 物件上的函式呼叫返回的內容)沒有返回任何有用的資訊感到沮喪,並且 `variant_get_type($obj)` 只返回一個數字,那麼您實際上需要的函式是
com_print_typeinfo($obj);
它會以人類可讀(或者說,程式設計師可讀)的格式列出所有函式、變數及其類型。很棒!
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
VARIANT 是 COM 中相當於 PHP zval 的概念;它是一個結構,可以包含具有各種不同可能類型的值。 COM 擴充套件提供的 variant 類別允許您更好地控制 PHP 在與 COM 傳遞值的方式。
範例 #1 variant 範例
<?php
$v = new variant(42);
print "類型為 " . variant_get_type($v) . "<br/>";
print "值為 " . $v . "<br/>";
?>
注意事項:
當回傳值或擷取 variant 屬性時,只有在類型之間存在直接映射且不會導致資訊遺失的情況下,variant 才會轉換為 PHP 值。在所有其他情況下,結果會以 variant 類別的實例形式返回。您可以透過明確使用轉型運算子,或透過 `print` 隱式轉型為字串,強制 PHP 將 variant 轉換或評估為 PHP 原生類型。您可以使用各種 variant 函式對 variant 執行算術運算,而無需強制轉換或冒資料遺失的風險。
另請參閱 variant_get_type()。
如果您對 `print_r($obj)`(其中 `$obj` 是從 COM 物件上的函式呼叫返回的內容)沒有返回任何有用的資訊感到沮喪,並且 `variant_get_type($obj)` 只返回一個數字,那麼您實際上需要的函式是
com_print_typeinfo($obj);
它會以人類可讀(或者說,程式設計師可讀)的格式列出所有函式、變數及其類型。很棒!
感謝 Harald Radi 和 Wez Furlong。
某些 VBA 函式具有選用參數。有時您想要傳遞的參數不是連續的。
例如:
GoTo What:=wdGoToBookmark, Name="BookMarkName"
GoTo(wdGoToBookmark,,,"BookMarkName)
在 PHP 中,空白的參數需要設為空值。
也就是…
<?php
// 有些伺服器可能有自動逾時設定,因此請設定您需要的時間。
set_time_limit(0);
// 在開發過程中顯示所有錯誤、警告和注意事項。
error_reporting(E_ALL);
// 在某些不需要參數的 COM 函式中用作佔位符。
$empty = new VARIANT();
// 載入適當的類型程式庫。
com_load_typelib('Word.Application');
// 建立要使用的物件。
$word = new COM('word.application') or die('無法載入 Word');
print "已載入 Word,版本 {$word->Version}\n";
// 開啟一個包含 YourName 和 YourAge 書籤的新文件。
$word->Documents->Open('C:/Unfilled.DOC');
// 填入表單中的資訊。
$word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'YourName'); // 注意 wdGoToBookmark 的使用,來自類型程式庫和 $empty 的使用。
$word->Selection->TypeText($_GET['YourName']);
$word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'YourAge');
$word->Selection->TypeText($_GET['YourAge']);
// 儲存檔案、關閉 Word 並結束。
$word->Documents[1]->SaveAs("C:/{$_GET['YourName']}.doc");
$word->Quit();
$word->Release();
$word = null;
print "Word 已關閉。\n";
?>
範例文件為…
您好 [YourName 的書籤],您今年 [YourAge 的書籤] 歲。
呼叫方式為…
word.php?YourName=Richard%20Quadling&YourAge=35
此致,
Richard.