Blogger Information
Blog 40
fans 3
comment 0
visits 48337
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
类与对象实例讲解,数组与字符串转换,数组与变量转换,计算机内存处理基础知识等 - 第九期线上班 20191203
MArtian
Original
839 people have browsed it

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

// 数据段,变量声明$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

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:这个作业本, 毕业了一定要留着, 非常有意义 , 写得非常棒, 可以留给你的孩子,哈
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post