Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
参考-这个错误在PHP中是什么意思? 这是什么?_Php_Debugging_Error Handling_Warnings_Custom Error Handling - Fatal编程技术网

参考-这个错误在PHP中是什么意思? 这是什么?

参考-这个错误在PHP中是什么意思? 这是什么?,php,debugging,error-handling,warnings,custom-error-handling,Php,Debugging,Error Handling,Warnings,Custom Error Handling,这是一些关于在编写PHP时可能遇到的警告、错误和注意事项的答案,您不知道如何修复它们。这也是一个社区Wiki,因此邀请所有人参与添加和维护此列表 为什么会这样? 堆栈溢出时经常会出现诸如或之类的问题。这些问题的根本原因总是一样的。因此,这些问题的答案通常会重复这些问题,然后在特定情况下向OP显示要更改的行。这些答案不会给网站增加任何价值,因为它们只适用于OP的特定代码。具有相同错误的其他用户无法轻松从中读取解决方案,因为他们太本地化了。这是可悲的,因为一旦您了解了根本原因,修复错误就变得微不足道

这是一些关于在编写PHP时可能遇到的警告、错误和注意事项的答案,您不知道如何修复它们。这也是一个社区Wiki,因此邀请所有人参与添加和维护此列表

为什么会这样? 堆栈溢出时经常会出现诸如或之类的问题。这些问题的根本原因总是一样的。因此,这些问题的答案通常会重复这些问题,然后在特定情况下向OP显示要更改的行。这些答案不会给网站增加任何价值,因为它们只适用于OP的特定代码。具有相同错误的其他用户无法轻松从中读取解决方案,因为他们太本地化了。这是可悲的,因为一旦您了解了根本原因,修复错误就变得微不足道了。因此,本列表试图以一种通用的方式解释解决方案

我在这里该怎么办? 如果您的问题已被标记为此问题的副本,请在下面找到您的错误消息,并对代码应用修复。答案通常包含进一步的链接,以防仅仅从一般答案中不清楚

如果您想参与,请添加您“最喜欢的”错误消息、警告或通知、每个答案一条、简短描述其含义(即使只是在手册页面上突出显示术语)、可能的解决方案或调试方法以及有价值的现有Q&a列表。此外,请随时改进任何现有答案

名单
  • (也称为白页/死亡屏幕)
  • a.k.a.
  • "
  • [参考]
另见:

致命错误:调用成员函数。。。关于非对象 在类似于
xyz->method()
的代码中发生,其中
xyz
不是对象,因此无法调用
method

这是一个致命错误,将停止脚本(转发兼容性注意:从PHP7开始,它将成为一个可捕获的错误)

这通常是代码缺少错误条件检查的迹象。在调用对象的方法之前,验证该对象实际上是对象

例如

// ... some code using PDO
$statement = $pdo->prepare('invalid query', ...);
$statement->execute(...);
foreach ($items as $item) {
    // do something with item
    $counter++;
}
$users = json_decode('[{"name": "hakre"}]');
echo $users->name; # Notice: Trying to get property of non-object
在上面的示例中,无法准备查询,
prepare()
false
分配给
$statement
。尝试调用
execute()
方法将导致致命错误,因为
false
是“非对象”,因为该值是布尔值

找出函数返回布尔值而不是对象的原因。例如,检查上次发生的错误的
$pdo
对象。有关如何调试的详细信息将取决于特定函数/对象/类的错误处理方式

如果即使是
->prepare
也失败,那么您的
$pdo
数据库句柄对象。找到定义它的地方。然后将其作为参数传递、存储为属性或通过全局作用域共享

另一个问题可能是有条件地创建一个对象,然后尝试在该条件块之外调用一个方法。比如说

if ($someCondition) {
    $myObj = new MyObj();
}
// ...
$myObj->someMethod();
通过尝试在条件块之外执行该方法,可能无法定义对象

相关问题:

警告:mysql\u fetch\u array()希望参数1是给定的资源 首先,也是最重要的:

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO


当您试图从
mysql\u查询的结果中获取数据,但查询失败时,就会发生这种情况

这是一个警告,不会停止脚本,但会使程序出错

您需要检查由
mysql\u query
by返回的结果

$res = mysql_query($sql);
if (!$res) {
   die(mysql_error());
}
// after checking, do the fetch
相关问题:

相关错误:

其他的
mysql*
函数如果也希望使用mysql结果资源作为参数,则会出于相同的原因产生相同的错误。

警告:无法修改标头信息-标头已发送 当脚本尝试将HTTP头发送到客户端,但之前已经有输出,导致头已发送到客户端时发生

这是一个错误,它不会停止脚本

典型的示例是这样的模板文件:

<html>
    <?php session_start(); ?>
    <head><title>My Page</title>
</html>
...
$resource = curl_init();
var_dump($resource);

resource(1) of type (curl)

我的页面
...
session\u start()
函数将尝试将带有会话cookie的头发送到客户端。但是PHP在将
元素写入输出流时已经发送了头。您必须将
会话\u start()
移到顶部

您可以通过查看触发警告的代码之前的行并检查其输出位置来解决此问题。将任何头发送代码移到该代码之前

一个经常被忽略的输出是PHP关闭后的新行
?>
。当
?>
是文件中的最后一项内容时,省略它被认为是一种标准做法。同样,此警告的另一个常见原因是当打开
解析错误时:语法错误,意外的T_XXX
当您有意外的位置、不平衡的(多余的)括号、在php.ini中使用短标记而不激活它时发生

相关问题:

  • 参考:
有关更多帮助,请参阅:

  • -这确实为您的语法问题提供了一些更有用的解释
分析错误:sy
$data = array('foo' => '42', 'bar');
if (array_key_exists('spinach', $data)) {
    echo $data['spinach'];
}
else {
    echo 'No key spinach in the array';
}
<?php echo $_POST['message']; ?>
<form method="post" action="">
    <input type="text" name="message">
    ...
if ($_POST)  ..  // if the $_POST array is not empty
// or
if ($_SERVER['REQUEST_METHOD'] == 'POST') ..  // page was requested with POST
$query = "UPDATE `posts` SET my_text='{$_POST['text']}' WHERE id={$_GET['id']}";
mysqli_query($db, $query);
$query = "UPDATE `posts` SET my_text='I'm a PHP newbie' WHERE id=10';
ini_set('display_errors', 1); error_reporting(~0);
// Wrong
echo $array[key];

// Right
echo $array['key'];
// Wrong
echo varName;

// Right
echo $varName;
// Wrong
$foo = fasle;

// Right
$foo = false;
foreach ($items as $item) {
    // do something with item
    $counter++;
}
$counter = 0;
foreach ($items as $item) {
    // do something with item
    $counter++;
}
$prefix = "Blueberry";
$food = ["cake", "cheese", "pie"];
$prefixedFood = array_map(function ($food) {
  // Prefix is undefined
  return "${prefix} ${food}";
}, $food);
$prefix = "Blueberry";
$food = ["cake", "cheese", "pie"];
$prefixedFood = array_map(function ($food) use ($prefix) {
  return "${prefix} ${food}";
}, $food);
$obj = new stdclass;
$obj->property = 2342;
foreach ($items as $item) {
    // do something with item
    $obj->counter++;
}
$someCondition = false;
if ($someCondition === true) {
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error
function createFn() 
{
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error
include __DIR__ . '/inc/globals.inc.php';
require dirname(__FILE__) . '/inc/globals.inc.php';
<?php

class MyClass
{
    public function doSomething()
    {
        // do stuff here
    }
}
<?php

function do_stuff()
{
   require 'class.php';
   $obj = new MyClass;
   $obj->doSomething();
}

do_stuff();
do_stuff();
echo "This is a double-quoted string with a quoted array key in $array['key']";
//---------------------------------------------------------------------^^^^^
echo "This is a double-quoted string with an un-quoted array key in $array[key]";
//------------------------------------------------------------------------^^^^^
echo "This is a double-quoted string with a quoted array key in {$array['key']}";
//--------------------------------------------------------------^^^^^^^^^^^^^^^
// Or a complex array property of an object:
echo "This is a a double-quoted string with a complex {$object->property->array['key']}";
echo "This is a double-quoted string with an array variable". $array['key'] . " concatenated inside.";
//----------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^
$resource = curl_init();
var_dump($resource);

resource(1) of type (curl)
$fp = fopen(...);
$fp   = fopen(...);
$data = fread($fp, 1024);

Warning: fread() expects parameter 1 to be resource, boolean given
$fp = fopen(...);

if (!$fp) {
    trigger_error('Failed to allocate resource');
    exit;
}

$data = fread($fp, 1024);
$sql = 'SELECT * FROM dealer WHERE id="'$id.'"';
error_reporting(E_ALL);
$string = 'ABCD'; 
for ($i=0, $len = strlen($string); $i <= $len; $i++){
    echo "$string[$i] \n"; 
}
A
B
C
D
Notice: Uninitialized string offset: 4 in XXX on line X
$value = @(2 / 0);
if ( $var1 == 0 ) { // check if var1 equals zero
    $var1 = 1; // var1 equaled zero so change var1 to equal one instead
    $var3 = ($var2 / $var1); // divide var1/var2 ie. 1/1
} else {
    $var3 = ($var2 / $var1); // if var1 does not equal zero, divide
}
class HTML {
   public function br() {
      echo '<br>';
   }
}
error_reporting(E_ALL & ~E_STRICT);
public static function br() {
  echo '<br>';
}
$html = new HTML();
$html->br();
$arr = [1, 2, 3];
$arr = array(1, 2, 3);
$suffix = explode(',', 'foo,bar')[1];
$parts = explode(',', 'foo,bar');
$suffix = $parts[1];
file://C:/path/to/my/file.php
http://localhost/my/file.php
$arr = array('foo', 'bar');

echo $arr;  // Notice: Array to string conversion
$str = 'Something, ' . $arr;  // Notice: Array to string conversion
echo $arr[0];  // displays foo
$str = 'Something ' . join(', ', $arr); //displays Something, foo, bar
foreach($arr as $key => $value) {
    echo "array $key = $value";
    // displays first: array 0 = foo
    // displays next:  array 1 = bar
}
$users = json_decode('[{"name": "hakre"}]');
echo $users->name; # Notice: Trying to get property of non-object
$result  = $xpath->query("//*[@id='detail-sections']/div[1]");
$divText = $result->item(0)->nodeValue; # Notice: Trying to get property of non-object
$result  = $xpath->query("//*[@id='detail-sections']/div[1]");
$div     = $result->item(0);
$divText = "-/-";
if (is_object($div)) {
    $divText = $div->nodeValue;
}
echo $divText;
$var = "test";
echo $var["a_key"];
$string = 'abc';
echo $string{0};  // a

$array = [1, 2, 3];
echo $array{0};  // 1
$string = 'abc';
echo $string[0];  // a

$array = [1, 2, 3];
echo $array[0];  // 1