簡體   English   中英

警告:非法字符串偏移“內容”

[英]Warning: Illegal string offset ‘content’

作為一名圖形設計師,我對 PHP 代碼不太了解。

警告:第 908 行的webaddress/class-vc-frontend-editor.php 中的非法字符串偏移量“內容”

我正在使用 Visual Composer 的前端編輯器,並且在檢查代碼時不斷出現此錯誤,我得到以下信息:

 );
        if ( false !== WPBMap::getParam( $s, 'content' ) ) {
            $shortcode['attrs']['content'] = $s 'content';
        }

我精通 HTML、CSS 和 Scripter,但我希望具有高級 PHP 技能的人能夠回答我的問題。

如果我在 Dreamweaver 中打開文件以嘗試診斷錯誤,我會得到以下信息:

第 908 行:語法錯誤,意外的帶引號的字符串 (T_CONSTANT_ENCAPSED_STRING)

這段代碼有什么問題,以至於它拋出了這個錯誤消息?

你錯過了. 字符在:

$shortcode['attrs']['content'] = $s.'content';

這里是關於字符串運算符的手冊

此代碼似乎至少有兩個錯誤。 有關說明,請參閱下面的列表項。

  1. 問題標題中的錯誤:

    警告:非法字符串偏移“內容”

    這來自索引到在指定索引處沒有偏移量的數組。

     $shortcode['attrs']['content'] = $s 'content';

    如果$shortcode['attrs']不是數組或索引 'content' 處沒有元素,則會發生此錯誤。 您沒有解釋$shortcode來源,但避免此錯誤的一種方法是使用array_key_exists()檢查數組是否在content處具有索引:

     if (array_key_exists('content', $shortcode['attrs'])) { $shortcode['attrs']['content'] = $s 'content'; } else { //handle case where index isn't defined }

    為了更安全,使用is_array()確保它是一個數組可能是明智的:

     if (is_array($shortcode['attrs']) && array_key_exists('content', $shortcode['attrs'])) {
  2. 你提到的第二個錯誤:

    第 908 行:語法錯誤,意外的帶引號的字符串 (T_CONSTANT_ENCAPSED_STRING)

    發生這種情況是因為在賦值的右側(在同一行中),變量$s位於字符串文字(即'content' )之前,中間沒有運算符。 我不知道你到底想用這兩個操作數做什么,但也許它們應該連接起來。 這可以通過字符串運算符(即. )來實現。

     $shortcode['attrs']['content'] = $s . 'content';

對於來這里問這個問題的人:

  1. 正確的行應該是$shortcode['attrs']['content'] = $content;

  2. 錯誤是由於 VC 沒有檢索正則表達式中的內容,前幾行:

     $shortcode = array( 'tag' => $s, 'attrs_query' => $found[3][ $index ], 'attrs' => shortcode_parse_atts( $found[3][ $index ] ), //here 'id' => $id, 'parent_id' => $parent_id, );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM