2017-07-14 5 views
0

Ich arbeite mit dem Laravel Rahmen und Version PHP 5.5.12nicht arbeiten Array Schnittstelle

<?php 
namespace App\pattern; 

interface status 
{ 

    const status = array( 
      "confirm"=> 1 
      ,"unconfirm"=> 2 
      ,"record"=> 3 
    ); 
} 

nach Gebrauch Klasse

$r = $this::status['confirm']; 

zeigen Fehler

FatalErrorException in ContentController php .php Zeile 19: Syntaxfehler, unerwartet '['

Antwort

1

Es gibt keine $this, es ist eine Schnittstelle.

Sie müssen es nutzen möchten:

$r = status::status['confirm']; 
// ^ ^
//  |  constant name 
// interface name 
// 
echo $r; 

Und so seltsam es sein könnte, Schnittstellen Unterstützung tun Konstanten, angegeben als here: php constants

in PHP 5.5 aber können Sie nicht haben ein array als eine Konstante

Sie können https://3v4l.org/JbdJa auschecken und sehen, wie es als ein Schnittstellenaufruf funktioniert oder in einer Klasse, die diese Schnittstelle implementiert

+0

Dankbar Ich überprüfte die Problemversion der Version php.5.6 Allgemein, um eine Array-Konstanten zu definieren –

Verwandte Themen