php基础——基础语法知识
2020-06-29 04:51
746 查看
php可与html混编
代码示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>这是个php文件</title> <style> h1{ width: 200px; border: 3px solid gold; text-align: center; } </style> <script> alert('OK'); </script> </head> <body> <?php for ($i=0; $i<10; $i++){ echo "<h1>hello-$i</h1>"; } ?> </body> </html>
内存分析
流程分析
1.浏览器将请求发给
apache
2.
apache检测请求,若后缀名是
.php,就去调用
php处理模块,该模块将全部php代码读入模块内处理
3.
php处理模块根据标记,仅处理php代码,处理结束将代码重新封装交给
apache
4.
apache将代码交给浏览器,浏览器拿到的是处理后的代码,是看不到php源代码的
5.浏览器解析代码,展示给用户
php是弱类型语言
- php是若数据类型语言,不必向 PHP 声明该变量的数据类型
- PHP 会根据变量的值,自动把变量转换为正确的数据类型
- 在强类型的编程语言中,必须在使用变量前先声明 (定义)变量的类型和名称
php是解释型语言
解释型语言:通俗点就是看一行执行一行,列如javascript、php、python都为解释型语言 优点:跨平台 缺点:稍微慢点
编译型语言:c/c++ 通篇翻译然后在执行,优点:快 缺点:移值性不好(不跨平台)
php数据类型
- 基本数据类型:整形 浮点型 字符串 布尔
- 复合数据类型:数组 对象
- 特殊数据类型:资源 NULL
php定义变量
- php如果只是声明,但是没有定义,会报undefind,如
$a
- js中也是这样,但强类型语言不是
- php中普通变量名
php变量命名规范
- php变量前面必须加上
$
符号 - php变量区分大小写,函数不区分大小写
php表达式
- 在PHP中,几乎所写的任何东西都是一个表达式
- 简单但却最精确的定义一个表达式的方式就是“任何有值的东西”
$a = 10; // 表达式 10返回给$a $b = 10*2; // 表达式 先运算在返回给$b function test(){ } $c = test(); // 表达式 返回值为null var_dump($c);
php动态变量名
- php中变量名,常量名,函数名,类名是可变的
- 遇到$变量名(),php会解析变量,然后调用函数
// 动态变量名 $animal = "动物"; $dog = "animal"; $hsq = "dog"; echo $animal, $$dog, $$$hsq; //动物动物动物 // 动态常量名 define("PI", 3.14); $test = 'PI'; echo constant($test); // 动态函数名 function dance(){ echo '跳舞'; } $test = 'dance'; $test();
php是以文件整体来执行的
php是以文件作为整体来执行的,如果如果进入代码区时发现有语法错误,会报错,且不输出任何数据
// 直接报错,不输出任何数据 $a = 111; function test(){ echo 'hello' } $b = 222;
php变量作用域
内存角度
- 如果没有变量指向数据,那数据就销毁(除了超全局和静态)
- 局部变量,如果不人为unset()的话,函数调用结束,为函数开辟的栈销毁,原本函数栈中变量指向的数据不在有变量指向,也随之销毁
- 全局变量,如果不人为unset()的话,脚本执行完毕主栈才销毁,主栈销毁,原本主栈中变量指向的数据不在有变量指向,也随之销毁
- 超全局变量,与全局的区别就是即使在函数内,也可以直接用,无需global
概念角度
- 局部变量:函数内部有效
- 全局变量:在函数外部有效(在函数内部通过global访问)
- 超全局变量:在一个脚本的全部作用域中都可用,在函数或方法中无需执行 global 就可以访问
代码示例
// 全局变量 $a = 1; function test(){ // 局部变量 $b = 2; // 在函数内使用全局变量 global $a; // 等价于 $a=&$GLOBAL[$a] ,此时主栈和新栈都有一个$a 指向同一个数据 // 函数内直接使用超全局变量 var_dump($GLOBALS); // 函数内利用超全局变量访问全局变量 echo $GLOBALS[$a]; } test();
为什么PHP函数可以在定义声明前就能调用?PHP程序的执行不是从上到下的吗?函数全局性的基本原理是什么?
首先PHP不是单纯的按照行来边解释边执行的,而是先由Zend引擎翻译PHP代码到Zend二进制操作码,然后再去执行操作码。
对于函数的位置,因为函数的作用域是全局的,所以只要定义了,那么就可以在任意位置去调用它。
PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。(348讲)
348讲解释: php在执行的时候,是以文件为单位执行,也就是说,在执行php代码时,整个文件已经被调入内存
相关文章推荐
- PHP之新手自学基础知识(二)——语法篇
- PHP基础知识(一)——基础语法
- PHP 语法 基础知识
- php基础语法知识笔记(一)
- php基础语法知识笔记(二)
- 基础知识 (php)
- OC基础语法知识
- MySQL+PHP,从最基础的知识开始(mysqL权限)
- PHP基础之常量1——语法简介
- PHP基础知识
- css3基础知识第一章语法
- php 必要基础知识温补之 变量地址的传递
- PHP(一)基础语法和数据类型
- php学习笔记之基础知识
- 一、PHP基础知识总结
- jsp基础知识(基本的语法及原理)
- PHP基础语法
- PHP基础篇----笔记-course2PHP基础知识(2)
- php基础知识:函数基础知识
- php基础知识:类与对象(3) 构造函数和析构函数