PHP警告:字符串偏移量'text'不合法

时间:2019-07-13 06:56:22

标签: php mysql button

我在PHP中不断收到以下错误:

  

[2019年7月13日06:49:43 UTC] PHP警告:字符串偏移量'text'非法   在   /home/catchandreport/public_html/sweettune.info/LikeDislike/index.php   在第15行

有什么办法可以用其他东西替换我的字符串?

我还没有尝试过任何东西。当我在使用它时,这是一个完全不同的问题,但是在另一行代码中,我得到了

  

非法字符串偏移量'id'

我做错了什么我可以更改吗?

    

ContentView

3 个答案:

答案 0 :(得分:0)

听起来好像数组中没有设置$ post [“ text”]值。

如果不确定所使用的数组部分/键是否存在,则应始终先对其进行测试:

$textVar = (isset($post["text"]) ? $post["text"] : "YOUR ALTERNATE VALUE");

甚至可以检查是否设置了阵列:

$post = (is_array($post) ? $post : array());

如果无法获得正确的值,请尝试对数组进行var_dump操作以查看类型和内容:

var_dump($post);

希望有帮助

答案 1 :(得分:0)

当变量类型不是数组并且您试图访问数组键值时,将出现非法字符串偏移警告。

让我给你一个例子(错误的方式);

$post = ''; // Initialized as empty string
$post['text'] = 'abc'; // It will work but give you illegal offset value

echo $post['text']; // It will work but give you illegal offset value

以正确方式进行操作的示例:

$post = array(); // Initialied as array
$post['text'] = 'abc';  // Now it will not give the illegal offset value

echo $post['text']; // Now it will not give illegal offset value

答案 2 :(得分:0)

如果您有非法字符串偏移的问题,首先,如已经提到的@SeeQue,

测试post是否是数组,然后测试键(不是设置键,而是设置键):

                if(is_array($post)) {
                   if(array_key_exists("text", $post)) {
                    //do something
                  }
                }

也许这会有所帮助。

BR