2012-12-16 38 views
0

我在PHP中有兩行,如果我合併導致我的頁面停止加載...不幸的是,我沒有錯誤消息使用error_reporting(E_ALL | E_STRICT); ini_set('display_errors', true);,並沒有在我的apache error.log文件。無法在PHP中結合strpos和!爲什麼?

這個工程:

$user_setup = strpos($_SESSION['user'], "@"); 
if (!empty($user_setup)) {.... 

但是,這並不:

if (!empty(strpos($_SESSION['user'], "@"))) {.... 

有一些關於strpos功能造成這一行不通?

感謝您的幫助!

+6

['empty'](http://php.net/empty)需要一個變量,而不僅僅是一個值。但是在這種情況下,您應該使用'$ user_setup!== false'作爲'strpos'返回'0',以便* needle *在字符串的開頭。 – Gumbo

+0

這就行了!謝謝@Gumbo 你知道任何可以取代的函數!在這種情況下是空的嗎? (p.s.隨意提交你的答案) –

+0

你想完成什麼? 'strpos'總是返回一個值,所以用'empty'來檢查它並沒有多大用處。你應該使用一些明確的條件,比如'0 === strpos(...)' –

回答

2

empty()實際上是一種語言結構而不是函數。此外,它不會將任何變量作爲參數。

+0

從php 5.5(未發佈)開始,空不需要變量了。 – goat

+0

未發行意味着在這種情況下無關緊要。 – brezanac