Php 无法对函数调用的结果使用isset()-Laravel
我有一个自定义的助手和一个配置,我可以得到这个值,但是当我尝试isset()时,它不起作用,它向我显示如下 这是customer helper的内容: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
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