PHP
PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
PHP脚本在服务器上执行。
PHP文件
PHP文件可包含HTML、CSS、JavaScript代码和 PHP 代码
PHP代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
PHP 文件的默认文件扩展名是.php
PHP功能
PHP 可以生成动态页面内容
PHP 可以创建、打开、读取、写入、关闭服务器上的文件
PHP 可以收集表单数据
PHP 可以发送和接收 cookies
PHP 可以添加、删除、修改您的数据库中的数据
PHP 可以限制用户访问您的网站上的一些页面
PHP 可以加密数据
通过 PHP,不再限于输出 HTML。您、可以输出图像、PDF 文件,甚至 Flash 电影。还可以输出任意的文本,比如 XHTML 和 XML。
为什么使用 PHP
PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
PHP 提供了广泛的数据库支持(但是无)
PHP 是开源免费: www.php.net
PHP 易于学习
PHP安装
PHP7.4
Web 服务器(Apache)
MySQL数据库
集成服务器组件
Windows 系统可以使用 WampServer
XAMPP 支持 Mac OS 和 Windows 系统
IDE集成开发环境
Eclipse for PHP(免费开源)
PhpStorm(收费)
PHP语法
PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。
PHP标签
PHP 脚本可以放在文档中的任何位置。
<?php
//PHP代码
?>
PHP 脚本以 结束.
PHP注释
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
<?php
// 这是 PHP 单行注释
/*
这是
PHP 多行
注释
*/
echo "Hello World!";
?>
</body>
</html>
PHP变量
变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)
<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>
PHP 是一门弱类型语言,PHP 会根据变量的值,自动把变量转换为正确的数据类型。在强类型的编程语言中,必须在使用变量前先声明(定义)变量的类型和名称。
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
local
global
static
parameter
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问;
<?php
$x=5; // 全局变量
function myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x"; //没使用global,
echo "<br>";
echo "变量 y 为: $y";
}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?>
global关键字
global关键字用于函数内访问全局变量。在函数内调用函数外定义的全局变量,需要在函数中的变量前加上 global 关键字:
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
<?php
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y;
?>
Static作用域
当一个函数完成时,它的所有变量通常都会被删除。有时候希望某个局部变量不要被删除。需要第一次声明变量时使用 static 关键字:
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest();
myTest();
myTest();
?>
参数作用域
参数是通过调用代码将值传递给函数的局部变量。参数是在参数列表中声明的,作为函数声明的一部分:
<?php
function myTest($x)
{
echo $x;
}
myTest(5);
?>
echo/print 语句
<?php
$txt1="PHP";
$txt2="PHP2";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "<br>";
echo "在字符串中显示 $txt2 变量 ";
print "<br>";
print "字符串中显示数组 {$cars[0]}";
?>
EOF
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
1.以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
2.开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接
<?php
$name="php";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
数据类型
// String(字符串)
<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>
// Integer(整型)
<?php
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>
// Float(浮点型)
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
// Boolean(布尔型)
$x=true;
$y=false;
// Array(数组)
<?php
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
// Object(对象)
<?php
class Car
{
var $color;
function __construct($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
// NULL(空值)
<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
// Resource(资源类型)
<?php
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打印:mysql link
$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印:file
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打印:domxml document
?>
类型比较
松散比较:使用两个等号 == 比较,只比较值,不比较类型。
严格比较:用三个等号 === 比较,除了比较值,也比较类型。
<?php
if(42 == "42") {
echo '1、值相等';
}
echo PHP_EOL; // 换行符
if(42 === "42") {
echo '2、类型相等';
} else {
echo '3、类型不相等';
}
?>
// 比较 0、false、null
<?php
echo '0 == false: ';
var_dump(0 == false);
echo '0 === false: ';
var_dump(0 === false);
echo PHP_EOL;
echo '0 == null: ';
var_dump(0 == null);
echo '0 === null: ';
var_dump(0 === null);
echo PHP_EOL;
echo 'false == null: ';
var_dump(false == null);
echo 'false === null: ';
var_dump(false === null);
echo PHP_EOL;
echo '"0" == false: ';
var_dump("0" == false);
echo '"0" === false: ';
var_dump("0" === false);
echo PHP_EOL;
echo '"0" == null: ';
var_dump("0" == null);
echo '"0" === null: ';
var_dump("0" === null);
echo PHP_EOL;
echo '"" == false: ';
var_dump("" == false);
echo '"" === false: ';
var_dump("" === false);
echo PHP_EOL;
echo '"" == null: ';
var_dump("" == null);
echo '"" === null: ';
var_dump("" === null);
PHP常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的。
<?php
define("GREETING", "Hello World");
function myTest() {
echo GREETING;
}
myTest();
?>
注意:自 PHP 7.3.0 开始,定义不区分大小写的常量已被弃用。从 PHP 8.0.0 开始,只有 false 是可接受的值,传递 true 将产生一个警告。
字符串运算符
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
// 连接字符串
echo $txt1 . " " . $txt2;
// 计算字符串长度
echo strlen("Hello world!");
// 在字符串内查找一个字符或一段指定的文本
echo strpos("Hello world!","world"); //返回6
?>
标签:函数,作用域,global,echo,PHP,变量
From: https://www.cnblogs.com/aeolian/p/18012852