2013-06-17 22 views
31

mam ten kod:Nie można użyć zwracanej wartości funkcji w kontekście zapisu?

public function __construct($Directory = null) 
{ 
    if ($Directory === null) { 
     trigger_error("Directory Must Be Set!", E_USER_ERROR); 
    } 
    if (isset($Directory)) { 
     if (!empty(trim($Directory))) { //Error Line 
      echo "test"; 
     } 
    } 
} 

(Echo jest dla moich celów debugowania.)

dostaję wróciła z fatalnego błędu:

Can't use function return value in write context

Według PHP burzy ten powraca:

Variable Expected

Ale za pomocą kodu bezpośrednio z tego Pytanie:

White spaces throwing off HTML form validation

To jest poprawna składnia, jak już stosowane w przeszłości ... Ale w tej sytuacji jest to rzucanie błąd. Dlaczego to?

+3

na pierwszy wynik w google znalazłem to ty nie może przekazać funkcji zwracanej wartości do 'empty', musi być zmienną – urraka

Odpowiedz

95

Od docs PHP na empty funkcję:

Note: Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false.

Więc trzeba będzie podzielić tę linię w coś podobnego do poniższego:

$trimDir = trim($Directory); 
if(!empty($trimDir)) 
Powiązane problemy