资讯专栏INFORMATION COLUMN

PHP学习记录(基础)

crossoverJie / 2135人阅读

摘要:最后改为超文本预处理器,于年诞生。注释单行注释多行注释你好单行注释你也好单行注释多行注释大家都好变量由一个美元符号后面跟变量名来表示变量名区分大小写。可变变量可变变量一个变量的变量名可以动态设置和使用。

PHP简介

最初用于维护个人主页,简写为:Personal HomePage
最后改为:Hypertext Preprocessor(超文本预处理器),于1994年诞生。

优势

性能好,开发效率高

跨平台(可以在不同的操作系统上运:windows/linux/unix

上手快,编辑简单,实用性强

面向对象[PHP 4开始,目前完全支持面向对象]

开放的源代码,所有的PHP源代码都可以得到

成本低

注:PHP灵活,对程序员的约束太少,PHP默认是解释运行机制,所以很多问题在运行阶段才会发现。

B/S结构和C/S结构

B/SBrowser-Server,浏览器-服务器,通过浏览器访问,都可以看作B/S

C/SClient-Server,客户端-服务器,通过客户端访问,比如QQ,微信

PHP基础语法

开始标记和结束标记

告诉PHP开始和停止解析二者之间的代码,这使得PHP可以被嵌入到各种不同的文档中去。

如果是文件是纯PHP代码,最好在文件末尾删除PHP结束标记。

指令分隔符

//指令分隔符:php和其他编程语言一样,在每个语句后用分号";"结束指令,一段PHP代码中的结束标记隐含一个分号,所以在一个PHP代码段中的最后一行可以不用分号结束。
 echo "hello, world"."
";

注释

//单行注释:// #
//多行注释: /* */

echo "你好"."
";  //单行注释
echo "你也好"."
";  #单行注释

/*
 * 多行注释
 */
echo "大家都好"."
"; 
变量

由一个美元符号$后面跟变量名来表示(变量名区分大小写)。
和其他编程语言一样,一个有效的变量名由字符或者下划线开头,后面跟上任意数量的字符、数字或者下划线(也可中文)。

$this是个特殊的变量,不能被赋值。

//使用变量之前必须定义并进行赋值
$a;  //定义后不赋值直接使用会报错:Undefined variable
echo $a;

//变量名区分大小写
$var = "Bob";
$Var = "Tom";
echo $var."和".$Var."
";

传值赋值和引用赋值

/*
 * 传值赋值:当一个变量的值赋予另外一个变量的时候,改变其中一个变量的值,将不会影响到另外一个变量。
 * 引用赋值:新变量指向了原始变量,改动新的变量将影响到原始变量,反之亦然。(只有由名字的变量才能引用赋值,比如表达式就不可以)
 */
$a = "Bob";
$b = $a;  //传值赋值
$b = 10;
echo "a:".$a."	b:".$b."
";

$c = &$a;  //引用赋值
$c = 20;
echo "a:".$a."	c:".$c."
";

全局变量

/*
 * php
 * 在C语言中全局变量在函数中会自动生效,除非被局部变量覆盖。
 * php中全局变量在函数中使用时必须声明为global
 * $GLOBALS是一个关联数组,每一个变量为一个元素,键名对应对变量,值对应变量内容。
 */
$a = 1;
$b = 2;
function Sum()
{
    echo "a:".$a."	b:".$b;  //不会有任何输出

    //方法一:使用global标识全局变量
    global $a, $b;
    echo "a + b = ".($a + $b)."
";

    //方法二:使用$GLOBALS替代
    echo "a + b = ".($GLOBALS["a"] + $GLOBALS["b"])."
";
}
Sum();

静态变量

/*
 * 静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。
 */
//每次调用,$a都会重新定义赋初值,$b在编译期间初始化,以后不会重新定义。
function Test1()
{
    $a = 0;
    static $b = 0;
    static $c = 1+2;

    echo "a=".$a."	"."b=".$b."
";
    $a++;
    $b++;
}

for ($i = 0; $i < 10; $i ++)
{
    Test1();
}

可变变量

/*
 * 可变变量:一个变量的变量名可以动态设置和使用。
 */

$a = "hello";
$$a = "world";  //一个可变变量获取了一个普通变量的值作为这个可变变量的变量名

echo "$a ${$a}"."
";
echo "$a $hello"."
";
常量

一旦被定义,就不能再改变或者取消定义
常量只能包含booleanintegerfloatstring

常量和变量有如下不同:

常量前面没有美元符号$;

常量只能用define()函数定义,而不能通过赋值语句;

常量可以不用理会变量的作用域而在任何地方定义和访问;

常量一旦定义就不能被重新定义或者取消定义;

常量的值只能是标量类型;

常量的定义
php5.3.0后,除了使用函数define()之外,还可以使用关键字const来定义常量。

constdefine()的区别:

版本差异,php5.3.0后才能使用const关键字,define()函数对所有版本兼容

定义位置差异:

`define()`函数定义的常量是在执行`define()`函数时定义的,可以在任何位置定义,无论是函数内或函数外
`const`关键字定义的常量是编译时定义的,所以定义的时候必须处于最顶端的作用区域,不能在函数内部

对值的表达式支持差异

`const`关键字定义的常量值的表达式中不支持运算符,`define()`函数可以支持

注意:使用const关键字定义常量必须处于最顶端的作用区域。因为用此方法是在编译时定义的,这就意味着不能在函数内,循环体内用const来定义常量。

define("A", "Hello, world");
echo "A = ".A."
";
    
const B = "你好";
echo "B = ".B."
";

魔术常量

__LINE__:文件中的当前行号
__FILE__:文件的完整路径和文件名
__DIR__:文件所在的目录
__FUNCTION__:函数名称
__CLASS__:类的名称
__TRAIT__Trait的名字,包括其被声明的作用区域
__METHOD__:类的方法名
__NAMESPACE__:当前命名空间的名称

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28741.html

相关文章

  • php基础——关于SELECT语句的返回结果

    摘要:最近在学习的相关知识,常常需要对等语句的返回结果进行判断。方法查找符合条件的记录关键语句若查找到返回索引数组若未查到,为。若采用语句来抓取数据,若找到符合条件的记录,返回的结果为,即。 本人php小白一枚。最近在学习php的相关知识,常常需要对INSERT、SELECT等sql语句的返回结果进行判断。这给我造成了很多的困扰,在进行了各种尝试之后,将我的总结整理在此。1.INSERT语句...

    番茄西红柿 评论0 收藏0
  • PHP小知识点

    摘要:那些琐碎的知识点作者记录的的很奇特很难记的知识点。易错知识点整理注意和的区别中和都是输出的作用,但是两者之间还是有细微的差别。今天手头不忙,总结一下,分享过程中掌握的知识点。 深入理解 PHP 之:Nginx 与 FPM 的工作机制 这篇文章从 Nginx 与 FPM 的工作机制出发,探讨配置背后的原理,让我们真正理解 Nginx 与 PHP 是如何协同工作的。 PHP 那些琐碎的知识...

    hover_lew 评论0 收藏0
  • Visual Studio Code调试PHP

    摘要:和,这两个配置文档中说的是设置为。主要感慨就是,文档一定要找到官方文档,然后提高英语阅读水平,随后再加上多多尝试即可。 本人微信公众号:前端修炼之路,欢迎关注。 showImg(https://segmentfault.com/img/remote/1460000019475554?w=443&h=253); 这两天有点时间,花时间学习了一下PHP基础语法和语句。因为个人比较喜欢Vis...

    canger 评论0 收藏0
  • PHP学习记录(日期函数)

    摘要:时间戳不仅被使用在系统,类系统中,也在许多其他操作系统中被广泛应用。 日期时间函数 格式化日期 /* * date函数 * string date(string format[, int timestamp]) * 描述:格式化一个本地时间/日期 * * format格式: * Y:4位数字完整表示的年份 * y:2位数字表示的年份 * F:月份,完整的文本格式 * ...

    linkFly 评论0 收藏0
  • 记一次 Laravel 应用性能调优经历

    摘要:为了一探究竟,于是开启了这次应用性能调优之旅。使用即时编译器和都能轻轻松松的让你的应用程序在不用做任何修改的情况下,直接提高或者更高的性能。 这是一份事后的总结。在经历了调优过程踩的很多坑之后,我们最终完善并实施了初步的性能测试方案,通过真实的测试数据归纳出了 Laravel 开发过程中的一些实践技巧。 0x00 源起 最近有同事反馈 Laravel 写的应用程序响应有点慢、20几个并...

    warkiz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<