批改状态:合格
老师批语:没关系的, 学习都是从模仿开始的, 只要不放弃,坚持下去, 肯定会有收获的
define()const
<?php// 先用define和const定义常量define('MY_NAME', 'xiaocheng');const MY_class='0109';// 输出这两个常量echo MY_NAME , '<br>', MY_class, '<br>';// 下面比较不同之处class A{// const:可以创建类常量const NATION = 'CHINA';// define() 不能创建类常量,创建就会出错// define('USER_NAME', 'admin');}echo A::NATION, '<br>';// define()定义的常量允许使用表达式做为值,而const只能用字面量$domain = '@qq.com';define('MY_EMAIL', '1446582' . $domain);echo MY_EMAIL, '<br>';// const NEW_EMAIL = 'admin@' . $domain;const NEW_EMAIL = 'admin@php.cn';echo NEW_EMAIL, '<br>';
<?php// 单引号与双引号$name = 'xiaocheng';echo '$name \t 单引号不解析内部的变量和特殊字符 <br>';echo "$name\t双引号可以解析内部变量和字符 <br>";// 在第一个$name前添加转入字符"\",可以使变量不被解析echo "\$name\t的值是\t$name <br>";echo "<hr>";// 如果想在单引号或双引号中引用自身, 也可以使用转义字符,这样单双引号就出来了echo '$name\t的值是\t\'$name\' <br>';echo "\$name\t的值是\t\"$name\" <br>";//两个反斜杠在字符串输出转义字符echo "\\$name", '<br>';echo '<hr>';// 双引号中的变量标识符,如果与其它字符串连接在一起会引起解析错误,去掉\t就会出现错误,效果中不显示错误的值echo "\$name\t的值是\t${name}hello <br>";echo "$name\t的值是\t$namehello <br>";
[]中, 多个元素之间用逗号分隔开$arr = [1,2,3,4];`$arr = [0=>1,1=>2,2=>3,3=>4];`$stu = ['id'=>101, 'name'=>'小胖', 'course'=>'php']

<?php// 创建索引数组user1和user2,user3$users1[0] = 10;$users1[1] = 'admin';$users1[2] = 'admin@php.cn';$users2[] = 10;$users2[] = 'admin';$users2[] = 'admin@php.cn';$users2[] = 'php中文网';echo gettype($users2);$users3 = [20, 'jack', 'jack@php.cn'];// 获取单个数组信息// echo '<pre>' . print_r($users3, true) . '</pre>';// 一次性获取多个数组信息var_dump($users1, $users2, $users3);echo "<hr>";// 索引数组的访问与遍历foreach ($users3 as $item) {echo $item , '<br>';}echo "<hr>";// 字符串与数组的装换// 数组元素与变量之间的转换list($id, $name, $email) = $users3;// 将索引数组转为字符串: 拉平一个数组, 存储到数据表$str = implode(',', $users3);echo gettype($str), ' : ', $str, '<br>';// $sql = "INSERT `users` SET `comment` = ${str}";// 将一个字符串转换成索引数组$str = 'html=css=js=php=laravel';$arr = explode('=', $str);echo '<pre>' . print_r($arr, true) . '</pre>';echo "<hr>";// 关联数组的创建$products1['id'] = 100;$products1['name'] = '手机';$products1['price'] = 5000;echo '<pre>' . print_r($products1, true) . '</pre>';// 字面量方式创建$products2 = ['id'=>105, 'name'=> '电脑', 'price'=>9000];// 也用foreach()遍历,只输出键值foreach ($products2 as $value) {echo $value , '<br>';}// 输出键名,键值foreach ($products2 as $key=>$value) {echo "['$key'] => $value <br>";}echo "<hr>";// 关联数组与变量之间的转换extract($products2);echo "id=>$id, name=>$name, price=>$price <br>";echo "<hr>";// 变量转化成关联数组,变量的创建$dsn = 'mysql:host=localhost;dbname=php';$username = 'root';$password = 'root2';// 变量的转化,转换成关联数组$linkParams = compact('dsn', 'username', 'password');echo '<pre>' . print_r($linkParams, true) . '</pre>';echo "<hr>";// 将变量转化成索引数组function connect(...$linkParams){// 返回的是索引数组print_r($linkParams);}connect($dsn, $username, $password);echo "<hr>";// 将关联数组转为索引数组$indexArr = array_values($products2);echo '<pre>' . print_r($products2, true) . '</pre>';echo '<pre>' . print_r($indexArr, true) . '</pre>';echo "<hr>";// 3. 多维数组// 数组元素, 除了可以是原始类型, 也可以还是一个数组, 这时就形成也多维数组// 从数据表中的读取的记录, php会转为二维数组, 日常开发, 二维数组用得最多$users = [['id'=> 101, 'name'=> '小王', 'grade'=> 88],['id'=> 102, 'name'=> '小张', 'grade'=> 78],['id'=> 103, 'name'=> '小李', 'grade'=> 68],];// 访问,得到结果小张echo $users[1]['name'], '<br>';// 遍历查询,输出users数组的内容foreach ($users as $user) {// print_r($user);echo '<br>';echo "id=>${user['id']}, name=>${user['name']}, price=>${user['grade']} <br>";}
<?php// 1 单分支// 购买数量$count = 11;// 单价$price = 99;// 金额$total = 0;// 折扣率$discount = 1;// 数量大于十件,小于二十件,打骨折if ($count >= 10 && $count < 20) {$discount = 0.01;}// 计算金额规则$total = $count * $price * $discount;echo "购买数量: $count, 总金额: $total, 折扣率: $discount <hr>";// 2. 双分支,多加了一个条件// $count = 16;$count = 3;// 数量大于十五件,小于二十件,打一折if ($count >= 15 && $count < 20) {$discount = 0.1;// 否则打九九折} else {$discount = 0.99;}// 计算金额规则,去掉这条的话,总金额会是上面的第一个total$total = $count * $price * $discount;echo "购买数量: $count, 总金额: $total, 折扣率: $discount <hr>";// 3. 多分支,三个及以上的判断// 我选了一个在最后才能判断的值$count=1.88;if ($count >= 10 && $count < 20) {$discount = 0.9;} elseif ($count >= 20 && $count < 30) {$discount = 0.8;} elseif ($count >= 30) {$discount = 0.7;} else {$discount = 1;}// 计算金额规则$total = $count * $price * $discount;echo "购买数量: $count, 总金额: $total, 折扣率: $discount <hr>";// 4. switch(), 简化多分支$count = 38;switch (true) {// 达成的条件case $count >= 10 && $count < 20://达成条件后的折扣$discount = 0.9;break;case $count >= 20 && $count < 30:$discount = 0.8;break;case $count >= 30:$discount = 0.7;break;// 这些条件都没满足的判断default:$discount = 1;}$total = $count * $price * $discount;echo "购买数量: $count, 总金额: $total, 折扣率: $discount <hr>";// switch ()更多应用场景是单值判断$discount = 0.7;// 我觉得这种判断方式,适合比较简单的判断,比如在条件确定的情况下switch ($discount) {case 1:$total = $count * $price * 1;break;default:// echo '不支持的折扣率';// 程序中止exit('不支持的折扣率');}echo "购买数量: $count, 总金额: $total, 折扣率: $discount <hr>";
做的时候比较迷茫,不知道怎样做好这次作业,最后我决定按照老师的案例来一步步做,相似度或许有点高,但是每条我都测试过效果,在代码的部分我加了一些自己的理解,希望老师理解。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号