2016-07-04 8 views
1

私はカスタムヘルパーと設定を持っていますが、値を取得できますが、isset()を試しても機能しないので、このように表示されます関数呼び出しの結果にisset()を使用できません - Laravel

enter image description here

、これは顧客ヘルパーの内容です:app\helper\LmsHelper.php

class LmsHelper 
{ 
    private static $host; 
    private static $api_key; 
    private static $api_version; 
    private static $use_ssl; 
    private static $debug; 
    private static $port; 

    public function __construct() { 
     self::$host   = Config::get('lms.host'); 
     self::$api_key  = Config::get('lms.api_key'); 
     self::$api_version = Config::get('lms.api_version'); 
     self::$use_ssl  = Config::get('lms.use_ssl'); 
     self::$debug  = isset(Config::get('lms.debug')) ? Config::get('lms.debug') : false; 


     if (isset(Config::get('lms.port'))) { 
      self::$port = Config::get('lms.port'); 
     } else { 
      self::$port = self::$use_ssl ? 443 : 80; 
     } 
    } 
} 

app\config\lms.php

<?php 

return array( 
    'host' => 'www.themartialarts.university', 
    'api_key' => '6027-178512-e272b9afac4763199fa8d79e4bc0dcb39a378658', 
    'api_version' => '1', 
    'use_ssl' => true, 
); 

他にどのような方法ができますか?これは通常のPHPからのもので、私はそれをLaravelに変換します。

+0

ここで説明しているように、 "isset"関数を使用しないでください。http://stackoverflow.com/questions/11464714​​/php-check-if-false-or-null – ddb

答えて

2

isset()を使用できないメソッド呼び出しのため、Config::has("name")メソッド呼び出しを使用します。

1

issetは$変数でのみ呼び出すことができます。

問題を解決するには、その行をself::$debug = Config::get('lms.debug', false);に変更してください。 (デフォルト値をfalseに設定)

0

"isset"は変数のみをとります。あなたは以前のvarriableで関数の結果を設定する必要があります。

public function __construct() { 
    $config = Config::get('lms.debug'); 
    self::$host   = Config::get('lms.host'); 
    self::$api_key  = Config::get('lms.api_key'); 
    self::$api_version = Config::get('lms.api_version'); 
    self::$use_ssl  = Config::get('lms.use_ssl'); 
    self::$debug  = isset($config) ? Config::get('lms.debug') : false; 

    $configPort = Config::get('lms.port'); 
    if (isset($configPort)) { 
     self::$port = Config::get('lms.port'); 
    } else { 
     self::$port = self::$use_ssl ? 443 : 80; 
    } 
} 
+0

'if(isset() Config :: get( 'lms.port'))){'? :P –

+0

それは同じ方法です、私は編集のコードを更新します – Pierre

0

言語構造がそれをサポートしている場合でも、それも不足しているreturn句が適切nullを生成するための関数は、変数を返すかどうかをテストするためにあまり意味がありません。例えば:

function nothing() { 
} 

var_dump(nothing()); 
NULL 

私はあなたがis_null()ではなくisset()使用したいと思います。

0

の代わりにifを使用します。issetは、変数のチェックに使用され、NULLではありません。

関連する問題