最近开始学习PHP,但PHP拙劣的语法,特别令人讨厌,为什么会是这样呢。就如下面这样:$mysqli=new mysqli("localhost","root","","test");
if ($mysqli->connect_errno) {
        printf("connect failed:%s\n",$mysqli->connect_error);
    //die('Connect Error: ' . $mysqli->connect_error);
}else{        
        $query="select * from students;";
        $query.="select name,age,sex from students";
        if($mysqli->multi_query($query)){
                do{
                        if($result=$mysqli->store_result()){  //拙劣的PHP :两个同样名字的方法竟然返回类型差别这么大,哪怕都返回对象也行啊
                echo "类型:".gettype($result);//返回对象
                        }
                }while($mysqli->next_result());
        }else{
        }
        
        
        /*
        $query="select name,age,sex from students";
        if($stmt=$mysqli->prepare($query)){
                $stmt->execute();
                $result=$stmt->store_result();//拙劣的PHP :两个同样名字的方法竟然返回类型差别这么大,哪怕都返回对象也行啊
                echo "类型:".gettype($result);//返回布尔类型
        }
        */

解决方案 »

  1.   

    mysqli::store_result
    Returns a buffered result object or FALSE if an error occurred.
    返回一个缓冲的结果对象或假如果出现了一个错误。是你自己弄错了
      

  2.   


    你说的是这个:http://php.chinaunix.net/manual/zh/function.mysqli-store-result.php
    但还有这个呢:http://php.net/manual/en/mysqli-stmt.store-result.php
      

  3.   

    $mysqli->store_result() 
    时的 $mysqli 是 mysqli 对象(echo get_class($mysqli), //mysqli)
    返回一个 mysqli_result  对象$stmt->store_result()
    时的 $stmt 是一个 mysqli_stmt 对象(echo get_class($stmt); //mysqli_stmt)
    返回一个 bool 型值虽然方法名相同,但隶属的类不同。有不同的返回值不是很正常的吗?
      

  4.   

    好和坏是比较来的,说到比较那只有行家,即精通的人才有资格评论,你啥也不会,上来就说拙劣,不知你思考没有,你有没有这个资格呢?这里先不说php,就说别的事也是一样的,你不是行业你怎么有这个评审能力和资格呢?
    假如你的逻辑是对的,那么,可以得出这样的结论来,只要你不会的你都可以认为是拙劣的,你不感觉你的思维很幼稚吗?你不感觉你的思想很拙劣吗?
    自己不会就认为拙劣,真是太可笑了,希望你别在这里丢人现眼了,不会没人笑话你,但是,不会还装逼,那就是人品的问题了.
      

  5.   

    store_result()
      

  6.   

    这与是否弱类型无关!强类型语言一样可以改变函数(方法)返回的数据类型
    int a(int v) {
      return 1;
    }char* a(char* s) {
      return "abc";
    }
      

  7.   

    这只是一个方面而已,其他还有很多,不能一一列举,弱类型的语言就是这样的,有利有弊如果抱着排斥的心态学习语言,多少年也学不会
    为什么php会火,想必它一点都不拙劣,相反很智能
    为什么php会被很多语言一起鄙视(嫉妒),一个菜鸟学一个月就会做企业站或者个人主页,还包括着html+css
    弱类型有利有弊?用惯苹果的人绝对不主动碰windows,用惯弱类型再回强类型也都恨不得自己写个zval
      

  8.   

    关键那是PHP的类库函数啊,你见过有哪个强类型的语言这样设计吗
      

  9.   

    关键那是PHP的类库函数啊,你见过有哪个强类型的语言这样设计吗你真的学过其他语言?
      

  10.   

    别的不说,你就看看这个帖子 http://bbs.csdn.net/topics/390978933 java 的
    何况 mysqli 和 mysqli_stmt 还是两个类关键那是PHP的类库函数啊,你见过有哪个强类型的语言这样设计吗
      

  11.   

    关键那是PHP的类库函数啊,你见过有哪个强类型的语言这样设计吗他那是一个例子而已,再说java是支持同名方法重载的,我不理解的是为什么 mysqli_stmt->store_result()明明返回布尔类型,还非得起这么个名字,他和mysqli ->store_result()都是执行数据库查询后的操作,那为什么mysqli ->store_result()就是直接获取的结果集,而mysqli_stmt->store_result()就得用另外的方法重新去读取结果集,就不能直接获取吗,这是为什么呢?
      

  12.   

    关键那是PHP的类库函数啊,你见过有哪个强类型的语言这样设计吗你真的学过其他语言?有比较才有结论!
      

  13.   

    比如说c#中的toString 有的类是返回类名,有的是返回字符串,这不都一样吗
      

  14.   

    很多东西不是刚开始就急着下定论的。特别是初学,不能急躁,抱着急躁的心态是学不好的。
    php4之前比较像过程性的c语言。5以后偏重面向对象。
      

  15.   

    mysqli_stmt::store_result  是调用mysqli_stmt类的store_result 静态方法
    mysqli->store_result() 是调用类mysqli里的store_result方法
    这都不是一回事,返回不同很正常。另为了让楼主看清楚
    mysqli_stmt_store_result
    mysqli_store_result
    并排写
    这两个函数名一样吗?$stmt->store_result()
    $mysqli->store_result()
    如果楼主认为这是一样的,那还请楼主静下心好好从0开始学习什么是类。