我在PHP中不断收到以下错误:
[2019年7月13日06:49:43 UTC] PHP警告:字符串偏移量'text'非法 在 /home/catchandreport/public_html/sweettune.info/LikeDislike/index.php 在第15行
有什么办法可以用其他东西替换我的字符串?
我还没有尝试过任何东西。当我在使用它时,这是一个完全不同的问题,但是在另一行代码中,我得到了
非法字符串偏移量'id'
我做错了什么我可以更改吗?
ContentView
答案 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