博客列表 >类与对象实例讲解,数组与字符串转换,数组与变量转换,计算机内存处理基础知识等 - 第九期线上班 20191203

类与对象实例讲解,数组与字符串转换,数组与变量转换,计算机内存处理基础知识等 - 第九期线上班 20191203

MArtian
MArtian原创
2019年12月04日 13:58:25838浏览

第一个案例,数据段,变量声明

// 数据段,变量声明$title = 'Hello PHP';// 代码段,函数表示function getTitle($v){
    return $v;}// 调用执行,将指令一条一条传入到CPU中echo getTitle($title);

第二个案例,变量与符合变量的读取与打印

// 变量值是name,变量值的类型是字符串$name = 'Naughty';$age = '10th';$petType = 'Cat';$gender = 1;  // 1 = Male  0 = Female// 单值读取// echo : 回显, 无返回值echo 'Age:' . $age . '<br>';// 布尔值会发生类型转换, true =>1, false=>空echo 'Gender: ' . $gender . '<br>';// 字符串echo 'Name:'. $name . '<br>';// 字符串虽然是单值,却可以像数组一样访问echo 'First Alphabet is'.$name{0}.'<br>';//print:打印,与echo功能类似,但是会返回值1print('Age'.$age.'<br>');echo print('Age'.$age.'<br>');//print_r($var , false|true):以更容i理解的方式打印变量,"r" meaning "readily"print_r($name);echo '<br>';// 如果添加了第二参数true,则是返回信息return,而不是输出echoecho print_r($name, false|true);// 这样做,对于简单类似,单值变量意义不大,但对于复合数据意义非凡$data = range(1,20,2);// 因为第二个参数true的存在,该函数值返回了数据,而不是直接输出// 所以,我们可以根据自己的要求,任意的格式化需要输出的数据,使之更好阅读echo '<br><pre>'. print_r($data,true).'</pre>';//var_export($var,false|true):输出/返回变量的字符串表示//起始就是定义该变量的php代码而已,例如,字符串会自动填上定界符符号var_export($name);echo '<br>';//var_dump($var1,$var2...):打印一个或多个变量的结构,包括类型与值var_dump($name,$age,$petType,$gender);

第三个案例,索引数组与关联数组转换

<?php//数组定义//(一)索引数组// 1.定义// 如果有$user = []; 代表是追加定义//直接定义,索引默认从0开始,也可自定义$user[]=101;$user[]='admin';$user[]='admin@php.cn';//推荐方式$user=[101,'admin','admin@php.cn'];//2.访问:单个或多个成员echo $user[2].'<br>';print_r ($user);echo '<pre>'.print_r($user,true).'</pre>';var_dump($user);echo '<hr>';//3.遍历:可循环访问数组全部成员//3.1 for:索引数组,最常用是for循环$res = '';for($i=0;$i<count($user);$i++){
    $res .=$user[$i].',';}// 去掉最后的 ', ' 输出遍历结果echo rtrim($res,', ');echo '<hr>';//3.2 foreach$res = '';foreach($user as $item){
    $res .= $item . ', ';}echo rtrim($res,', ');echo '<hr>';//4.转换//4.1 索引数组与变量之间的转换,MVC中模板赋值会经常使用list($id,$name,$email) = $user;echo $id.' - '.$name.' - '.$email.'<br>';// 4.2索引数组转换字符串:将数组扁平化存储会用到,例如数组存储到数据表的字段中$str = implode(',',$user);echo $str.'<br>';$sql = "INSERT `users` SET `comment` = {$str};";//附加知识:讲一个字符串(例如从数据表中读到的),再转换成数组$arr = explode(',',$str);print_r($arr);echo '<hr>';// 注意:索引不推荐使用while遍历,如果一定要这样做,可以这样写// each()有可能会在以后的版本中删除,有可能会看到不推荐使用的警告while(list($key,$value) = each($user)){
    echo '[' . $key . '] => ' . $value . '<br>';}/******************************************************************************************************************************************************************************************///(二)关联数组//1.定义$user = ['id'=>101,'name'=>'admin','email'=>'admin@php.cn'];//2.访问echo $user['email'] . '<br>';print_r($user);var_dump($user);var_export($user);echo '<hr>';//3.遍历//3.1 foreach:推荐foreach($user as $key => $value){
    echo '[' . $key . ']=>' . $value . '<br>';}//3.2 for并不适合关联数组,但是可以借助数组指针,也可以完成遍历$res = '';for($i=0;$i<count($user);$i++){
    //获取当前指针处的数组成员
    $res.=current($user).', ';
    //指针前移到下一个数组成员的位置上
    next($user);}echo rtrim($res,', ');echo '<hr>';//4.转换//4.1关联数组与变量之间的转换(与索引数组略有区别)//索引数组需要list()提供变量名,关联数组可以直接使用字符串键名做变量名//$user = ['id'=>101,'name'=>'admin','email'=>'admin@php.cn'];//同样,非常适合用在模板变量的创建与赋值上extract($user);echo 'id=' . $id . ', name=' . $name . ', email=' . $email.'<br>';// 既然可以将数组拆分成独立变量,就可以将独立变量再组装成关联数组compact()$dsn = 'mysql:host=localhost;dbname=demo';$username ='root';$password = 'root';$linkParams = compact('dsn','username','password');print_r($linkParams);echo '<br>';//4.2 关联数组转索引数组print_r(array_values($user));//4.3 关联数组转字符串,与索引数组的方式是一样的,主要用于存储和格式化输出//涉及的函数:explode()组装,implode()拆分

总结

  1. 1.list()函数将索引数组的每个值赋值到变量中,这里设置几个变量,就会返回几个索引数组值,例如数组长度是3,list设置了2个变量,只会返回两个值。

  2. 2.extract()将关联数组拆分成变量,变量名为关联数组的键名,这里需要注意的是,关联键名是数字不能被转换,如果已定义了与关联键同名的变量,那么该变量的值会被替换。

  3. 3.compact将变量组合成数组,组合后的数组是关联数组,键名就是变量名,compact参数是变量名,不包含$符号,变量名用单引号包裹,逗号分隔。

1.jpg2.jpg3.jpg

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议