(小白)PHP基础学习002 20201002

(小白)PHP基础学习002 20201002

历程

  1. 输出
<?php
    $a=1;
    echo "01:",$a," ";
    echo "02:",print($a)," ";
    //print $a," ";//报错PHP Parse error:  syntax error, unexpected ','
    print "03:";
    print $a;
    print " ";
    print_r("04:",$a);
?>

结果:


01:1 02:11 03:1 


这里04没有输出,因为print_r不是这么用的,具体可见:
https://www.runoob.com/php/php-print_r-function.html

bool print_r ( mixed $expression [, bool $return ] )
参数说明:

$expression: 要打印的变量,如果给出的是 string、integer 或 float 类型变量,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。
$return: 可选,如果为 true 则不输出结果,而是将结果赋值给一个变量,false 则直接输出结果。
返回值
$return 如果设为 true 才有返回值,为一个易于理解的字符串信息。

而02部分多了一个1,我觉得原理如下吧:

<?php
    echo "02:",print(TRUE)," ";

结果:

02:11 

输出了两个1,这个print()返回为TRUE,所以打印为1

  1. 时间的函数:
    date():按照指定格式对应的时间戳,根据格林威治时间开始计算的秒数
    格林威治时间 :百科:https://baike.baidu.com/item/%E4%B8%96%E7%95%8C%E6%97%B6/692237?fromtitle=%E6%A0%BC%E6%9E%97%E5%A8%81%E6%B2%BB%E6%97%B6%E9%97%B4&fromid=99824&fr=aladdin
    1970年1月1日0时0分0秒

microtime():获取微秒级别的时间

<?php
    //YMD大小写是有区别的
    echo date("Y年M月D日 H:i:s",1601690400),"\r\n";
    echo date("y年m月d日 H:i:s",1601690400),"\r\n";
    echo time(),"\r\n";
    echo microtime(),"\r\n";
    echo date("Y年M月D日 H:i:s",strtotime('tomorrow 10 hours')),"\r\n";
    echo strtotime('tomorrow 10 hours');

结果:

2020年Oct月Sat日 10:00:00
20100310:00:00
1601645609
0.76648400 1601645609
2020年Oct月Sat日 10:00:00
1601690400

  1. 换行
    https://blog.csdn.net/qq_41912505/article/details/88852709
<?php
    print "换行:01";
    echo "\r";//注意斜杆是"\",要用双引号
    print "换行:02";
    echo "\n";//注意斜杆是"\",要用双引号
    print "换行:03";
    echo "\r\n";//注意斜杆是"\",要用双引号
    print "换行:04";
    echo PHP_EOL;//也可以用PHP_EOL换行
    print "结束";
    

结果:

换行:01
换行:02
换行:03
换行:04
结束

  1. 文件加载
    文件加载原理:
    1、在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中
    2、加载位置,在哪加载,对应的文件中的代码嵌入的位置就是引入的位置,就是对应的include位置
    3、在PHP中被包含文件是单独进行编译的,被引用时,只有执行到这个引用时,才会提示报错(如果内部有错误的话)

PHP代码执行流程:
1、读取代码文件(PHP程序)
2、编译:将PHP代码转换成字节码(生成opcode)
3、zendengine来解析opcode,按照字节码进行逻辑运算
4、转换成对应的HTML代码

  1. include和include_once的区别
    include:系统遇到多次,就运行多次
    include_once:系统遇到多少次,也只会运行一次

  2. require和include的区别
    包含到文件的时候,报错的形式不同,include的报错级别较低,不会影响其它代码执行,而require的报错级别较高,后面的程序不会被执行。

其它功能都基本一样。

  1. 文件加载路径
    绝对路径:
    从磁盘的根目录开始
    Win:C:/路径/PHP文件
    Linux:/路径/PHP文件(Linux没有盘符的概念)
    从网站的根目录开始
    相对于网站主机名字对应的路径:
    localhost/index.php
    相对路径:
    . 或者 ./ :表示当前文件夹
    …/ :表示上级目录(当前文件所在的上级)

  2. 文件嵌套包含
    嵌套包含时很容易出现相对路径出错的问题

  3. 函数
    先编译后执行

<?php
    
    
    hi();
    
    function hi(){
        echo "hi";
    }

结果:

hi

但这个方式在python中是不行的:

hi()

def hi():
    print("hi")

结果:



Traceback (most recent call last):
  File "/usercode/file.py", line 1, in <module>
    hi()
NameError: name 'hi' is not defined

这个是PHP的一个特点

  1. 函数参数
    默认值都放在最右边,不能左边有默认值,右边却没有

  2. 引用传值
    没有引用传值的情况下:

<?php
$a=1;
function change($arg){
    $arg=3;
}
change($a);
echo $a;

?>

输出的结果:

1

如果用引用传值:&

<?php
$a=1;
function change(&$arg){
    $arg=3;
}
change($a);
echo $a;

?>

输出的结果却是:

3

也就是输入的实参被改变了
这里的参数本身必须是变量

  1. 函数返回值
    在PHP中所有函数都有返回值,如果没有指定,那么返回的就是NULL

  2. 作用域
    颠覆认知……在PHP中局部是不能直接引用全局变量的,也就是,你不作为参数,就没办法操作……

<?php
$a=1;
$b=2;
function add(){
    
    echo $a+$b;
}
add();
?>

结果:

0

a和b根本没用上

  1. 函数访问全局变量
    把全局变量放到超全局变量中
<?php
$a=1;
$b=2;
function add(){
    
    echo $GLOBALS['a']+$GLOBALS['b'];
}
add();
?>
结果:
3
  1. Global关键字:可以实现全局访问局部,局部访问全局
    这个方法和python相同
<?php
$a=1;
$b=2;
function add(){
    global $a;
    global $b;
    echo $a+$b;
}
add();
?>

结果:

3

这种方式只能在局部中引用全局变量。

这种方式,同样可能在局布中生成全局的变量

<?php
function a(){
    global $a;
    $a=10;
}
a();
echo $a;
?>

结果:

10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值