func.php    {
         function num()
 
   {
     $page=$_GET[page];
              if(empty($page))
                {
                  $page=1;
                 }
          $startnum = ($page - 1)*$this->maxnum;
 echo $startnum;
    }index.php<?php
   require('func.php');
   $mysqli=new my_db();
   $row= $mysqli->select("SELECT * FROM tb_computer  ORDER BY id DESC limit $mysqli->num(),10");?>这样写不行,是不是$mysqli->num()没有这样的语法?谢谢!

解决方案 »

  1.   

    至少应该写成这样
    $row= $mysqli->select("SELECT * FROM tb_computer ORDER BY id DESC limit " .$mysqli->num());  function num() {
        $page = $_GET['page'];
        if(empty($page)) {
          $page=1;
        }
        $startnum = ($page - 1)*$this->maxnum;
        return “$startnum,$this->maxnum"; 
      }
      

  2.   

    非常好 不愧是元老 这样写代码更简单 以下是我的代码 比较繁杂  $row= $mysqli->select("SELECT * FROM tb_computer ORDER BY id DESC limit ".$mysqli->num().",$this->maxnum");
    这样写就对了 只是不明白为何$this->maxnum不用加双引号 
    ".$mysqli->num()."必须加双引号 有时候这些符号还真捉摸不定 只能一个一个试 
    echo 要改成 return(当初我是为了测试有值输出没)
      

  3.   

    $mysqli->num() 是调用类的方法,放在引号中就变成了串,不执行的.",$this->maxnum");
    写成
    .",".$this->maxnum);
    也是一样的
      

  4.   

    $row= $mysqli->select("SELECT * FROM tb_computer ORDER BY id DESC limit {$mysqli->num()},10");
      

  5.   

    function num() 
    {
      $page=$_GET[page];
      if(empty($page))
           {
               $page=1;
            }
    ''''''''''''''''''''''
    }
    这里改成三目运算符更好哈{
      if($_GET[page]?$page=$_GET[page]:$page=1)  ''''''''''''''''''''''
    }
      

  6.   

    你的写法是木有问题的!
    在双引号内PHP变量是可以认识直接输出的,这个时候变量相当于占位符,编译的时候自动识别把字符串中的变量替换为对应的值了 不需要 . 进行连接的 
    注意!!单引号内的PHP变量是不认识的
    你不对的地方 就是那个num()方法 返回值 应该用return 不要用echo 就行了
      

  7.   

    本帖最后由 xuzuning 于 2011-07-04 17:29:03 编辑
      

  8.   

    楼上几位不要想当然的说function foo() {
      return 'abcd';
    }echo "123 {foo()} 456";你们说说这会输出什么????=================================================================
    没人会这样用吧 加大括号一般都是在输出变量的时候用 比如 {$a} {$array[name]} 
    百度一下 加大括号就是为了减少字符输入量 ".$array[0][1]"等同于 {$array[0][1]}