PHP 脚本以 <?php 开始,以 ?> 结束:
<?php
// PHP 代码
?>
// 这是 PHP 单行注释
/*
这是
PHP 多行
注释
*/
PHP 变量规则:
· 变量以 $ 符号开始,后面跟着变量的名称
· 变量名必须以字母或者下划线字符开始
· 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
· 变量名不能包含空格
· 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
PHP 没有声明变量的命令。
变量在您第一次赋值给它的时候被创建:
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
在 php 中函数是有独立的作用域,所以局部变量会覆盖全局变量,即使局部变量中并定义没有全局变量相同的变量,也会被覆盖
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
echo 和 print 区别:
· echo - 可以输出一个或多个字符串
· print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
echo "<h2>PHP 很有趣!</h2>"; echo "Hello world!<br>";
echo "<h2>PHP 很有趣!</h2>"; echo "Hello world!<br>";
print $txt1; print "<br>";
echo(): 可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。
PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。
使用概述:
· 1. 必须后接分号,否则编译通不过。
· 2. EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
· 3. 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
· 4. 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
· 5. 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
<?php echo <<<EOF <h1>我的第一个标题</h1> <p>我的第一个段落。</p> EOF; // 结束需要独立一行且前后不能空格 ?>
注意:
1.以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
2.开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接,如下:
<?php $name="runoob"; $a= <<<EOF "abc"$name "123" EOF; // 结束需要独立一行且前后不能空格 echo $a; ?>
· 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
布尔型可以是 TRUE 或 FALSE。
$cars=array("Volvo","BMW","Toyota");
PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
<?php class Car { var $color; function __construct($color="green") { $this->color = $color; } function what_color() { return $this->color; } } ?>
设置 PHP 常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
· name:必选参数,常量名称,即标志符。
· value:必选参数,常量的值。
· case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的
当您赋一个文本值给变量时,请记得给文本值加上单引号或者双引号。
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来。echo $txt1 . " " . $txt2;
strlen() 函数返回字符串的长度(字符数)。
<?php
echo strlen("中文字符"); // 输出 12?>
输出结果为 12,因为一个中文占 3 个字符数。
可以使用 mb_strlen 设置指定编码输出中文字符个数:echo mb_strlen("中文字符",'utf-8'); // 输出 4
在 PHP 中,有三种类型的数组:
· 数值数组 - 带有数字 ID 键的数组
· 关联数组 - 带有指定的键的数组,每个键关联一个值
· 多维数组 - 包含一个或多个数组的数组
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");
人工分配 ID 键:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
遍历数值数组
遍历并打印数值数组中的所有值,您可以使用 for 循环,如下所示:
实例
<?php $cars=array("Volvo","BMW","Toyota"); $arrlength=count($cars); for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>"; } ?>
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:
实例
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
在本章中,我们将一一介绍下列 PHP 数组排序函数:
· sort() - 对数组进行升序排列
· rsort() - 对数组进行降序排列
· asort() - 根据关联数组的值,对数组进行升序排列
· ksort() - 根据关联数组的键,对数组进行升序排列
· arsort() - 根据关联数组的值,对数组进行降序排列
· krsort() - 根据关联数组的键,对数组进行降序排列
超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
· $GLOBALS
· $_SERVER
· $_REQUEST
· $_POST
· $_GET
· $_FILES
· $_ENV
· $_COOKIE
· $_SESSION
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
function writeName($fname) { echo $fname . " Refsnes.<br>"; }
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。
PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入。
有一点很重要的事情值得注意,当处理 HTML 表单时,PHP 能把来自 HTML 页面中的表单元素自动变成可供 PHP 脚本使用。
PHP 下拉菜单单选
以下实例我们设置了下拉菜单三个选项,表单使用 GET 方式获取数据,action 属性值为空表示提交到当前脚本,我们可以通过 select 的 name 属性获取下拉菜单的值:
<?php $q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : ''; if($q) { if($q =='RUNOOB') { echo '菜鸟教程<br>http://www.runoob.com'; } else if($q =='GOOGLE') { echo 'Google 搜索<br>http://www.google.com'; } else if($q =='TAOBAO') { echo '淘宝<br>http://www.taobao.com'; } } else { ?>
<form action="" method="get"> <select name="q"> <option value="">选择一个站点:</option> <option value="RUNOOB">Runoob</option> <option value="GOOGLE">Google</option> <option value="TAOBAO">Taobao</option> </select> <input type="submit" value="提交"> </form>
<?php } ?>
php连接到服务器
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
注意在以上面向对象的实例中 $connect_error 是在 PHP 5.2.9 和 5.3.0 中添加的。如果你需要兼容更早版本 请使用以下代码替换:
// 检测连接
if (mysqli_connect_error()) {
die("数据库连接失败: " . mysqli_connect_error());
}
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); echo "连接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?>
关闭连接
连接在脚本执行完后会自动关闭。你也可以使用以下代码来关闭连接:
实例 (MySQLi - 面向对象)
$conn->close();
实例 (MySQLi - 面向过程)
mysqli_close($conn);
实例 (PDO)
$conn = null;
// 创建数据库
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
echo "数据库创建成功";
} else {
echo "Error creating database: " . $conn->error;
}
$conn->close();
?>
// 使用 exec() ,因为没有结果返回,PDO用这个
$conn->exec($sql);
ODBC 是一种应用程序编程接口(Application Programming Interface,API),使我们有能力连接到某个数据源(比如一个 MS Access 数据库)
感觉差不多了