Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法对函数调用的结果使用isset()-Laravel_Php_Laravel 4_Helper - Fatal编程技术网

Php 无法对函数调用的结果使用isset()-Laravel

Php 无法对函数调用的结果使用isset()-Laravel,php,laravel-4,helper,Php,Laravel 4,Helper,我有一个自定义的助手和一个配置,我可以得到这个值,但是当我尝试isset()时,它不起作用,它向我显示如下 这是customer helper的内容:app\helper\LmsHelper.php class LmsHelper { private static $host; private static $api_key; private static $api_version; private static $use_ssl; private

我有一个自定义的助手和一个配置,我可以得到这个值,但是当我尝试isset()时,它不起作用,它向我显示如下

这是customer helper的内容:
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;
        }
    }
}
<?php

return array( 
    'host' => 'www.themartialarts.university', 
    'api_key' => '6027-178512-e272b9afac4763199fa8d79e4bc0dcb39a378658', 
    'api_version' => '1', 
    'use_ssl' => true,
);
app\config\lms.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;
        }
    }
}
<?php

return array( 
    'host' => 'www.themartialarts.university', 
    'api_key' => '6027-178512-e272b9afac4763199fa8d79e4bc0dcb39a378658', 
    'api_version' => '1', 
    'use_ssl' => true,
);
您只能调用$variables

将该行更改为
self::$debug=Config::get('lms.debug',false)以解决问题。(将默认值设置为false)

使用
Config::has(“name”)
方法调用,因为这是一个无法使用
isset()
的方法调用,“isset”只接受变量。您必须在Previor变量中设置函数的结果

 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;
    }
}

即使语言构造支持它,测试函数是否返回变量也没有多大意义,因为即使缺少
return
子句也会生成正确的
null
。例如:

function nothing() {
}

var_dump( nothing() );
NULL

我怀疑您希望使用而不是。

使用
if
而不是
isset
,因为
isset
用于检查变量是否已设置且不为空。

我认为您不应该使用“isset”函数,如本文所述,
if(isset(Config::get('lms.port')){
?:p