2016-06-09 13 views
0

我在PhpStorm中有多個文件中有一個警告,我去了那個綠色的勾號!它們都來自使用BLOB,這當然是有道理的,因爲load()不是我的項目中列出的一個函數。它是來自OCI-Lob的基本php功能。代碼PhpStorm - 在BLOB中禁用'沒有在方法中找到的方法'

線路是:

$zip->addFromString($result['FILE_NAME'], $result['FILE_BLOB']->load()); 

我已經嘗試添加各種組合,如@var@method comments(也許不正確地):

/** @var $result['FILE_BLOB'] load */ 

我並不想關閉這個檢查當然這項工程在其他地方非常有用。我只是想壓制它,或者甚至更好地將它指向正確的方向。有很多黃色塊代替蜱是令人討厭的。也許我對此很感興趣,因爲該計劃顯然未受影響。有誰知道任何解決方案或解決方法?

回答

2

你可以引用團塊在一個單獨的變量,然後把一個暗示該變量:

/** @var OCI_Lob $fileBlob */ 
$fileBlob = $result['FILE_BLOB']; 
$zip->addFromString($result['FILE_NAME'], $fileBlob->load()); 

因爲$結果[「FILE_BLOB」]是將參照被分配一個對象,所以這應該不會導致腳本的內存使用量顯着增加。

另一種選擇是將整個結果數組提示爲OCI_Lob對象數組。不漂亮,但它可能會解決你的代碼檢查問題,以及:

/** @var OCI_Lob[] $result */ 
$zip->addFromString($result['FILE_NAME'], $result['FILE_BLOB']->load()); 

據我知道這是不可能的(還)暗示在PHPDoc的評論具體的數組鍵,所以這是我能來最好與此同時。

+0

嘿謝謝你的回覆。我嘗試了這兩種方法,但它只是說'未定義的類OCI_Lob',然後顯然仍然說在方法中找不到方法。也許需要直接鏈接到OCI-Lobs的位置?另外,我嘗試使用OCI-Lob,因爲Php手冊說明了它,而不是使用下劃線。引用作爲一個變量,我認爲可以用於我的另一個警告。那謝謝啦。 :) –

+0

如果您在名稱空間中工作,則可能需要使用\ OCI_Lob(前面的反斜槓引用根名稱空間)。 PHPStorm應該能夠在默認情況下識別這個類(至少它對我而言)。 – chocochaos

+0

爲這兩種變化工作的熱潮!我更喜歡第二行作爲其一行,並且只是一個評論,因此根本不涉及代碼。謝謝! –