PHP第一天

php与html的关系

1.html所有的元素必须以标签形式出现

2.php作为元素嵌入到html中也要使用标签

3.php与html代码混编时,必须使用双标签

4.html代码中嵌入php代码。扩展名改为php

5.html中php代码由php.exe执行

6.php执行结果最终以文本形式嵌入到html中,成为html一部分

7.嵌入到html中的php执行结果,和普通的html代码一样开源被浏览器识别解析。

8.php代码对前端浏览器来说时不可见的,安全的

<?php

//如果是纯php文件,不要加结束标签,除非与html混编

1.变量

1.声明

//类型由值决定,命名规范与js一直,但前面需要加$

$username = '内容'

2.查看

echo $username //内容

3.查看值和类型

var_dump($username)

4.更新

$username = '内容2'

echo $username //内容2

函数

1.声明与js一样,但是可以限定参数与返回值的类型,和TypSceript类似

function getUsername(string $username): string
{
    return 'Hello, ' . $username;
}
// 2. 调用,与js一样
echo getUsername('欧阳老师') . '<br>';
// 3. 参数不足: 默认值
function getTotal(float $price, int $num = 1): float
{
    return $price * $num;
}

echo '总金额: ' . getTotal(68.5) .  ' 元 <br>';
echo '总金额: ' . getTotal(68.5, 5) .  ' 元 <br>';
// 在js中, 有模板字面量,可以使用插值表达式,变量,函数
// 在php中,也有类似的模板,不过有二个限制
// 1. 必须用双引号声明
// 2. 只解析变量
// 声明一个匿名函数/函数表达式
$getTotal = function (float $price, int $num = 1): float {
    return $price * $num;
};

模板字面量调用
echo "总金额:  {$getTotal(68.5, 5)}  元 111<br>";
// 4. 参数过多, js 剩余参数 ...rest
不使用剩余参数,里面多余的形参不参与运算
$sum = function (float $a, float $b, float $c): float {
    return $a + $b + $c;
};
echo $sum(3, 4, 5), '<br>';  //12
echo $sum(3, 4, 5, 6, 7), '<br>';   //12

使用剩余参数
$sum = function (...$args) {
    // print_r($args);
    // [1,2,3].reduce(....)
    return array_reduce($args, function ($acc, $cur) {
        return $acc + $cur;
    }, 0);   
};

echo $sum(3, 4, 5, 6, 7), '<br>';
array_reduce()方法理解:
1.数组有几个数就调用几次
2.$acc第一次为默认值‘0’
执行流程为,读取数组,调用函数,返回为$acc + $cur;
第一次执行,0+3 =3,第二次执行,3+5= 8

array_reduce($args, function ($acc, $cur) {
        return $acc + $cur;
    }, 0);   
echo $sum(3,5), '<br>';  //8
// 5. 返回值
// return : 默认返回单值
// 返回多值: 数组/对象
$arr = [33, 2, 54, 7, 12, 23, 9];

求数组中大于$value的数
function getItems(array $arr, $value)
{
    // 在js中, 外部 变量自动穿透到内部,闭包
    // 在php回调方法中,使用外部变量,用use进行声明
    return array_filter($arr, function ($item) use ($value) {
        return $item > $value;
    });
}
print_r(getItems($arr, 20));
array_filter — 使用回调函数过滤数组的元素

总结:

1.变量不用声明,直接用。

2.使用双引号声明模板字符串,可嵌入变量。

3.函数先声明在调用。

4.函数参数不足:默认值

5.函数参数过多:剩余参数...rest

6.函数默认单值返回,返回多值请用数组或对象

 

 

查看与保存运行结果

1.echo

echo字符串,如果不是就转为字符串

echo用来输出计算结果的字符串表示,

数组转为字符串:implode('连接符',[数组])

2.var_dump

var_dump,查询值的类型,支持多个变量查询

var_dump(10, 'php', [1, 2, 3], true);
int(10) string(3) "php" array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } bool(true)

//不能用在生产环境

3.格式化打印

1.数组格式化

print_r(数组),只显示值

printf(模板,模板中的变量),%s字符串占位符,%d整数型,%f小数。

直接打印
printf('<pre>%s</pre>', print_r($arr, true));
只返回,不打印
sprintf('<pre>%s</pre>', print_r($arr,true));
$arr = ['手机', 5000, 3];
vprintf('品名: %s, 单价: %.2f 元, 数量: %d 部<br>', $arr);
// 它也有一个只返回不打印的版本
echo vsprintf('品名: %s, 单价: %.2f 元, 数量: %d 部<br>', $arr);

值传递, 引用传递

$username = '猪老师';
// ! 1. 值传递
这样是将$username;赋值给了$myname
$myname = $username;


// echo $myname; //猪老师
$myname = '牛老师';
// echo $myname; //牛老师


printf('$username = %s | $myname = %s  <br>', $username, $myname);
echo $myname === $username ?  '相等' : '不相等', '<hr>'; //不相等

 

// ! 2. 引用传递
// &
$yourname = &$username;

$yourname = '牛老师';

printf('$username = %s | $yourname = %s  <br>', $username, $yourname);
echo $yourname === $username ?  '相等' : '不相等', '<hr>';//相等

// 其实引用就是给原变量起个别名,并没有创建新变量

版权声明:
作者:zhuim521
链接:https://zhuimwl.com/123.html
来源:追梦博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
PHP第一天
php与html的关系 1.html所有的元素必须以标签形式出现 2.php作为元素嵌入到html中也要使用标签 3.php与html代码混编时,必须使用双标签 4.html代码中嵌入php代……
<<上一篇
下一篇>>