1.demo1
<?php
//数据,变量表示,放在数据段
$site = 'php.cn';
//代码,函数表示,放在代码段
function get_site($webSite){
return $webSite . '欢迎您';
}
//调用执行,指令一条一条的进入到cpu中
echo get_site($site);
2.demo2
<?php
//变量名是name,变量值的类型是字符串
$name = 'danyue';
$age = 30;
$isMarried = true;
//单值读取
//echo : 回显,无返回值
echo '年龄' . $age . '<br>';
//布尔值会发生类型转换, true =>1, false=>空
echo '是否已婚:' . $isMarried . '<br>';
//字符串
echo '姓名:' . $name . '<br>';
//字符串虽然是单值,但却可以像数组一样访问
echo '我的姓是:' . $name{0} . '<br>';
//print: 打印, 与echo功能类似 , 但是会有返回值: 1
print('年龄' . $age . '<br>');
echo print('年龄' . $age . '<br>');
// print_r($var, false|true): 以更容易理解的方式打印变量,r: readily易于理解
// 如果仅仅打印一个变量, 看上去似乎与之前的没有区别
print_r($name);
echo '<br>';
// 如果添加了第二参数true,则是返回信息return ,而不是输出echo
echo print_r($name, true);
// 这样做,对于简单类似,单值变量意义不大,但对于复合数据意义非凡
$data = range(1,20,2);
// 因为第二个参数true的存在, 使该函数只是返回了数据,而不是直接输出
// 所以,我们可以根据自己要求, 任意的格式化需要输出的数据,使之更好阅读
echo '<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, $isMarried);
3.demo3
<?php
//数组定义
//(一)索引数组
//1.定义
//如果有$user = [];就是追加式定义
//$user = [];
//直接定义,索引默认从0开始,也可自定义,并不要求链接
$user[] = 101;
$user[] = 'admin';
$user[] = 'admin@php.cn';
//推荐方式
$user = [101, 'admin', 'admin@php.cn'];
//2.发模糊问;单个或多个成员
// 简单变量中的echo ,print只能访问单个成员,不能输出数组
//单个数组成员
echo $user[2] . '<br>';//email
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.2foreach
$res = '';
foreach ($user as $item) {
$res .= $item . ',';
}
echo rtrim($res, ', ');
echo '<hr>';
//4.转换
//4.1索引数组与变量之间的转换。mvc中魔板赋值会用到
list ($id,$name, $eamil) = $user;
echo $id . '--' . $name . '--' . $eamil . '<br>';
//4.2索引数组转字符串:将数组扁平化存储会用到。例如将数组存储到数据表的字段中
$str = implode(',', $user);
echo $str, '<br>';
$sql = "INSET `users` SET `comment` = {$str};";
// 附加知识: 将一个字符串(例如从数据表中读到的), 再转换成数组
$arr = explode(',', $str);
print_r($arr);
echo '<br>';
// 注意: 索引不推荐使用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.手抄作业