2016-07-21 3 views
3

私はウェブサイト上で作業しています単語のプレスを使用して私の言葉のプレス版とすべてのプラグインとデータベースを更新した後、この問題に遭遇するのは初めてです、これは私が遭遇したものです。致命的なエラー:****。com httpdocs wp-content plugins popup-builder popup-builder.phpのオンラインコンテキストで関数の戻り値を使用できません335

これはエラー

Fatal error: Can't use function return value in write context in ****.com\httpdocs\wp-content\plugins\popup-builder\popup-builder.php on line 335

あなたは、バージョン5.5以降にPHPをアップグレードする必要がライン335

if(!empty(get_option("SG_ALL_POSTS")) && is_array(get_option("SG_ALL_POSTS")) && !(is_page() || is_home() || is_front_page())) { 
+0

のですか? – Teapetetose

答えて

1

です。

これは基本的にCan't use method return value in write contextの複製ですが、これはあなたのコードではありませんので、私はそれを偽装としてマークしません。エラーを修正するコードを編集することではなく、サーバー環境を設定して問題なくコードが実行されるようにすることです。

この問題の根本は、empty()がPHPの真の機能ではないということです。言語に組み込まれている機能です。 empty()には変数が渡されますが、通常の変数渡し規則は適用されません。通常は関数呼び出しの結果を渡すことができ、PHPは一時変数を作成しますが、empty()は実際の変数しか見ることができません。

PHP 5.5が変更されたので、empty()も一時変数で動作します。

0

これは誰もがこの問題を解決する方法を知っている機能コード

function sgOnloadPopup() 
{ 
    $page = get_queried_object_id(); 
    $popup = "sg_promotional_popup"; 
    /* If popup is set on page load */ 
    $popupId = SGPopup::getPagePopupId($page, $popup); 
    /* get all popups id which set in current page by class */ 
    $popupsIdByClass = getPopupIdInPageByClass($page); 

    if(POPUP_BUILDER_PKG > POPUP_BUILDER_PKG_FREE){ 
     delete_option("SG_MULTIPLE_POPUP"); 

     /* Retrun all popups id width selected On All Pages */ 
     $popupsId = SgPopupPro::allowPopupInAllPages($page); 

     $data = get_option("SG_ALL_POSTS"); 
     if(!empty($data) && is_array($data) && !(is_page() || is_home() || is_front_page())) { 
     /*if(!empty(get_option("SG_ALL_POSTS")) && is_array(get_option("SG_ALL_POSTS")) && !(is_page() || is_home() || is_front_page())) {*/ 
      /* Add to popups Queue */ 
      $popupsId = array_merge(get_option("SG_ALL_POSTS"), $popupsId); 
     } 
     if(!empty(get_option("SG_ALL_PAGES")) && is_array(get_option("SG_ALL_PAGES")) && (is_page() || is_home() || is_front_page())) { 
      /* Add to popups Queue */ 
      $popupsId = array_merge(get_option("SG_ALL_PAGES"), $popupsId); 
     } 

     /* $popupsId[0] its last selected popup id */ 
     if(isset($popupsId[0])) { 
      delete_option("SG_MULTIPLE_POPUP"); 
      if(count($popupsId) > 0) { 
       update_option("SG_MULTIPLE_POPUP",$popupsId); 
      } 
      foreach ($popupsId as $queuePupupId) { 

       showPopupInPage($queuePupupId); 
      } 

      $popupsId = json_encode($popupsId); 
     } 
     else { 
      $popupsId = json_encode(array()); 
     } 
     echo '<script type="text/javascript"> 
      SG_POPUPS_QUEUE = '.$popupsId.'</script>'; 
    } 

    //If popup is set for all pages 
    if($popupId != 0) { 
     showPopupInPage($popupId); 
    } 

    if(!empty($popupsIdByClass)) { 
     foreach ($popupsIdByClass as $popupId) { 
      sgRenderPopupScript($popupId); 
     } 
    } 
    return false; 
} 
関連する問題