关于php中的数组操作

程序中有这么一段:

fuction user($userid =0){
    if ($userid) {
       $tepsql = tep_db_query("select * from user where userid = '$userid'");
        if ($res = tep_db_fetch_array($tepsql)){
           foreach ($res as $key =>$value){
              $this->$key = $value;
              }
        }
    }else {
       $this->userid = 0;
    }
}


其中的tep_db_query函数对mysql_query函数进行了包装:


function tep_db_query($query,$link ='db_link'){
    global $$link;   //动态变量,所谓动态变量,是指把一个变量的值作为另一个变量的变量名.
   
    if (defined ('STORE_DB_TRANSACTIONS') && (STOR_DB_TRANSACTIONS =='true') {//defined 一般用作检查是否已经设置此变量,define设置一个变量.
       error_log('QUERY'.$query."/n",3,STORE_PAGE_PARSE_TIME_LOG);//error_log函数,发送一个错误信息到web服务器的错误日志,一个tcp的端口或是一个文件.
          //bool error_log(string message [,int message_type [,string destination [ ,string extra_headers]]])
          //第一个参数message是消息内容,第二个他一type是参数的类型,第三个是目标文件,第四个是其他的头信息,其实一般第四个参数用不到,我们看第二个参数type,包括0,1,2,3等四种类型,0是默认类型,四个类型的作用:
          //0,信心内容发送到php的系统日志记录,使用操作系统的日志记录机制或一个文件,取决于php.ini中的配置项error_log的内容,这个是缺省选项.
          //1,把信息发送到一个邮件地址,第三个参数就是一个邮件地址,
          //2,消息通过php的调试服务器远程的写入某个php调试服务器上,当然,php在编辑的时候 --enable-debugger必须打开,
          //3,消息作为一个新行附加在目标文件当中,
          //相关error_log的详细介绍:http://blog.csdn.net/heiyeshuwu/archive/2006/01/13/577838.aspx
       }
       $result = mysql_query($query,$$link) or tep_db_error($query,mysql_error(),my_error());
          //这个mysql_query返回的是一个表,然后在通过mysql_fetch_array()返回每一行的东西,这两个函数返回的类型都是数组,一个是二维的,一个是一维的,所以可以用类似temp['key']这样的操作
       if(defined('STORE_DB_TRANSACTIONS')&& (STORE_DB_TRANSACTIONS == 'true')){
          $result_error = mysql_error();//mysql_error()返回上一个mysql操作产生的文本错误信息:http://www.linuxbyte.net/linuxdoc/phpdoc-zh/functon.mysql-error.html
          error_log('RESULT'.$result.' '.$result_error . "/n",3,STORE_PAGE_PARSE_TIME_LOG);
       }
       return $result;
}

        if ($res = tep_db_fetch_array($tepsql)){
           foreach ($res as $key =>$value){
              $this->$key = $value;
              }
这段中的$res as $key =>$value是用来访问一个关联数组(这个东东相当于python或java中的dict类型的概念)的,使用foreach语句循环处理一个关联数组,并访问他的下标和值,需要把foreach语句改成这样的形式:
    foreach($student as key_name=>$new)
       {
          //do something.
       }
注:要循环操作顺序索引的数组,可以使用count()函数来获取数组中的元素个数,然后使用一个for()循环.
    同时,要循环操作非顺序索引的数组,可以使用current()函数以及key()函数,current函数用于确定数组当前的值 ,key函数用于确定当前元素的索引.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值