Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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_Codeigniter - Fatal编程技术网

非法字符串偏移量(PHP警告)

非法字符串偏移量(PHP警告),php,codeigniter,Php,Codeigniter,我使用的是Codeigniter框架。实际上,我试图在视图中显示数组。但它显示了一些错误。我检查了代码,但仍然找不到错误。我们将非常感谢您的帮助 models/users\u model.php class Users_model extends CI_Model{ public function getUsers(){ return array( 'first' => 'Farhan

我使用的是Codeigniter框架。实际上,我试图在视图中显示数组。但它显示了一些错误。我检查了代码,但仍然找不到错误。我们将非常感谢您的帮助

models/users\u model.php

class Users_model extends CI_Model{

            public function getUsers(){
                return array(
                        'first' => 'Farhan Khan',
                        'second' => 'Abdul Wali',
                        'third' => 'Shahzaib Kamal'
                        );
            }

        }
 class Users extends CI_Controller{

        public function index(){
            $this->load->model('Users_model');
            $data['users'] = $this->Users_model->getUsers();

            $this->load->view('users_list', $data);
        }

    }
    <!DOCTYPE html>
<html>
<head>
    <title>Users List</title>
</head>
<body>
    <?php
        foreach ($users as $user) {
            echo $user['first'];
        }
    ?>
</body>
</html>
controller/users.php

class Users_model extends CI_Model{

            public function getUsers(){
                return array(
                        'first' => 'Farhan Khan',
                        'second' => 'Abdul Wali',
                        'third' => 'Shahzaib Kamal'
                        );
            }

        }
 class Users extends CI_Controller{

        public function index(){
            $this->load->model('Users_model');
            $data['users'] = $this->Users_model->getUsers();

            $this->load->view('users_list', $data);
        }

    }
    <!DOCTYPE html>
<html>
<head>
    <title>Users List</title>
</head>
<body>
    <?php
        foreach ($users as $user) {
            echo $user['first'];
        }
    ?>
</body>
</html>
views/users\u list.php

class Users_model extends CI_Model{

            public function getUsers(){
                return array(
                        'first' => 'Farhan Khan',
                        'second' => 'Abdul Wali',
                        'third' => 'Shahzaib Kamal'
                        );
            }

        }
 class Users extends CI_Controller{

        public function index(){
            $this->load->model('Users_model');
            $data['users'] = $this->Users_model->getUsers();

            $this->load->view('users_list', $data);
        }

    }
    <!DOCTYPE html>
<html>
<head>
    <title>Users List</title>
</head>
<body>
    <?php
        foreach ($users as $user) {
            echo $user['first'];
        }
    ?>
</body>
</html>

用户列表
我得到的错误是:

遇到一个PHP错误

严重性:警告

消息:非法字符串偏移量“first”

像这样试试

<!DOCTYPE html>
<html>
<head>
    <title>Users List</title>
</head>
<body>
    <?php
        foreach ($users as $user) {
            echo $user."<br/>";
        }
    ?>
</body>
</html>

用户列表


用户列表
像这样试试

<!DOCTYPE html>
<html>
<head>
    <title>Users List</title>
</head>
<body>
    <?php
        foreach ($users as $user) {
            echo $user."<br/>";
        }
    ?>
</body>
</html>

用户列表


用户列表

您只有一个由模型返回的一维
数组。因此,当您执行
foreach
循环时,实际上是在对其进行迭代,并获得该数组的元素

可以通过修改视图进行确认

<?php
        foreach ($users as $user) {
            echo $user."<br/>";
        }

     //or you can simply do a var_dump($users);
    ?> 

您只有一个由模型返回的一维数组。因此,当您执行
foreach
循环时,实际上是在对其进行迭代,并获得该数组的元素

可以通过修改视图进行确认

<?php
        foreach ($users as $user) {
            echo $user."<br/>";
        }

     //or you can simply do a var_dump($users);
    ?> 

你可以这样试试

请记住,使用CodeIgniter类的第一个字母和文件名时,请仅使用大写字母

模型:User\u Model.phpfilename

public function getUsers() {
   return $this->db->get('users')->result_array();
}
public function __construct() {
   parent::__construct();
   $this->load->model('user_model'); // User_model.php
}

public function index() {
    $data['users'] = $this->user_model->getUsers();
    $this->load->view('users', $data);
}
ControllerUsers.phpfilename

public function getUsers() {
   return $this->db->get('users')->result_array();
}
public function __construct() {
   parent::__construct();
   $this->load->model('user_model'); // User_model.php
}

public function index() {
    $data['users'] = $this->user_model->getUsers();
    $this->load->view('users', $data);
}
看法


你可以这样试试

请记住,使用CodeIgniter类的第一个字母和文件名时,请仅使用大写字母

模型:User\u Model.phpfilename

public function getUsers() {
   return $this->db->get('users')->result_array();
}
public function __construct() {
   parent::__construct();
   $this->load->model('user_model'); // User_model.php
}

public function index() {
    $data['users'] = $this->user_model->getUsers();
    $this->load->view('users', $data);
}
ControllerUsers.phpfilename

public function getUsers() {
   return $this->db->get('users')->result_array();
}
public function __construct() {
   parent::__construct();
   $this->load->model('user_model'); // User_model.php
}

public function index() {
    $data['users'] = $this->user_model->getUsers();
    $this->load->view('users', $data);
}
看法


你犯了一点小错误--

你的阵列--

当您将使用该选项打印此阵列时--


在foreach的打印数组中,索引为0,1,2,3。。。但是数组中没有任何索引,这就是为什么给出这个错误的原因。

您犯了一个小错误--

你的阵列--

当您将使用该选项打印此阵列时--


在foreach的打印数组中,索引为0,1,2,3。。。但是数组中没有任何索引,这就是为什么出现这个错误的原因。

太好了,你能告诉我你有什么疑问吗?实际上,我不明白你为什么用“$users[]=array(…”而不是“return array(…”)我假设你想返回多个用户,但你只返回一个
用户
。如果你想返回多个用户,你需要一个2D数组。这是一个数组如果用户。这就是为什么我首先创建一个
用户
数组,然后向其中添加用户。太好了,你能告诉我你有什么疑问吗?实际上,我可以dn不理解为什么使用“$users[]=array(…”而不是“return array(…”)我假设你想返回多个用户,但你只返回一个
用户
。如果你想返回多个用户,你需要一个2D数组。这是一个数组如果用户。这就是为什么我首先创建一个
用户
数组,然后向其中添加用户。你尝试过任何答案吗?别忘了接受一个对你有帮助的答案。D如果你试过任何一个答案,别忘了接受一个对你有帮助的答案。