Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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_C++_Function - Fatal编程技术网

Php 用于读取文件行和查询结果的编程函数

Php 用于读取文件行和查询结果的编程函数,php,c++,function,Php,C++,Function,这个问题可能会得到其中一个分数,但我仍然想问,并希望得到一个答案,这对于知识更丰富的程序员来说可能非常简单 在C++中,GETLILE()函数只读取一行后跟一个while循环的连线。在PHP中,数据库查询结果可以通过mysql\u fetch\u行等方式获取。。。而且可能还有更多的例子(如果你知道,在你的答案中列出它们肯定会让我投赞成票)。我想知道这些函数是如何知道下一行或下一个结果的?有某种内置的迭代器,函数可以跟踪和更新 描述性的回答是非常感谢的 对于文件读取,有一个EOF(文件结束)标记或

这个问题可能会得到其中一个分数,但我仍然想问,并希望得到一个答案,这对于知识更丰富的程序员来说可能非常简单

<>在C++中,GETLILE()函数只读取一行后跟一个while循环的连线。在PHP中,数据库查询结果可以通过mysql\u fetch\u行等方式获取。。。而且可能还有更多的例子(如果你知道,在你的答案中列出它们肯定会让我投赞成票)。我想知道这些函数是如何知道下一行或下一个结果的?有某种内置的迭代器,函数可以跟踪和更新

描述性的回答是非常感谢的

  • 对于文件读取,有一个
    EOF
    (文件结束)标记或
    是\u EOF(指针)
    函数来检测文件结束(它们通常链接到操作系统内核内部)。文件行由系统
    EOL
    分隔符
    \n\r
    \n
    \r\n
    标记

  • 对于数据库结果集读取,有一个由数据库开发人员提供的公共API,它允许使用几乎相同的功能,即。E“是结果集的结尾”或“转到行”。例如,在php(+MySQLi)中,有一个函数或方法

  • 因此,常见的读取循环可能类似于以下伪代码:

    handle = getResourceHandle(args); // create a pointer to resource
    
    while(not isEOF(handle)){ // while end of resource is not reached
        row = getRow(handle); // read current row
    
        // some processing
    
        nextRow(handle); // move system row pointer to the next row
    }
    
    closeResourceHandle(handle); // free pointer to resource
    
    前面的示例显示了功能性方法,但是对于OOP,封装了很多细节:

    Resource r = new Resource(args); // getResourceHandle() + other operations
    
    while(not r->isEnd()){ // while not isEOF(handle) 
        row = r->getRowAndMoveToNext(); // getRow(handle) + nextRow(handle);
    
        // some processing
    }
    
    destroy r; // closeResourceHandle(handle) + other operations
    
    因此,最后,对于“低级编程”的函数方法,您“必须”跟踪行/行,并自己检查资源是否为非空。在OOP中,大多数常见的操作已经由提供者为您完成