php语言的第一篇文章
开始的感觉PHP语言跟shell脚本有些相似,另外跟html语言也比较像。
一些区别:
1,开始与结束:
PHP代码的开始结束标志为:
<?php
*code*
?>
2,变量
php变量的定义与python类似,不需要声明变量的类型,直接将数据赋值给变量即可。PHP的变量对大小敏感。
变量的定义和使用的时候是以“$”开头,变量名的定义形式与C++一致。
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
变量的作用域
PHP 有三种不同的变量作用域:
- local(局部)
- global(全局)
- static(静态)
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
如果想要在函数内部使用全局变量需要先使用global声明那个变量,实例代码如下:
<?php
$x=9;//全局作用
$t=13;
function test_var(){
$y=11;
global $t;
echo "x=$x\n";
echo "y=$y\n";
echo "t=$t\n";
}
test_var();
echo "x=$x\n";
echo "y=$y\n";
echo "t=$t\n";
?>
结果为:
PHP Notice: Undefined variable: x in /home/php/php-test-dir/test_php.php on line 16
x=
y=11
t=13
x=9
PHP Notice: Undefined variable: y in /home/php-test-dir/test_php.php on line 24
y=
t=13
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
2,输出:
有两种输出 echo,print
echo 和 print 之间的差异:
echo - 能够输出一个以上的字符串
print - 只能输出一个字符串,并始终返回 1
echo: 是一个语言结构,有无括号均可使用:echo 或 echo()。在echo中引用变量时和在linux脚本中引用变量一样直接使用即可。
echo "I'm about to learn PHP!\n";
echo "This", " string", " was", " made", " with parameters.";
echo "x=$x"
结果:
I'm about to learn PHP!
This string was made with parameters.
x=5
Print 的用法与 echo相似。
3,运算符
算术:±*/% 分别表示加减乘除和取余;还有与“=”写在一起的"+=“, “-=”,”*=“,”/=“,”%=“,用法跟C++的相同。还有跟C语言一样的自增和自减的操作。
字符串:
串联 “.” ,将两个字符串连接在一起:
$txt1 = “Hello” $txt2 = $txt1 . " world!”
加"=“的串联:$txt1 = “Hello” $txt1 .= " world!”
比较运算符,用于比较两个数字或者是字符串
“==” , “===”, “!=”, “<>”, “!==”, “>”, “<”, “>=”, “<=” 分别表示
等于,全等于,不等,不等,不全等,大于,小于,大于等于,小于等于。
其中全等“===”表示:$x === $y 如果
x
等于
y
,且它们类型相同,则返回
t
r
u
e
。不全等“
!
=
=
=
”表示
x 等于 y,且它们类型相同,则返回 true。 不全等“!===”表示
x等于y,且它们类型相同,则返回true。不全等“!===”表示:$x === $y 如果 $x 不等于 $y,或它们类型不相同,则返回 true
逻辑运算符:
and, or, xor, &&, ||, !
分别表示:与,或,异或,与,或,非;
其中xor 表示如果 $x 和 $y 有且仅有一个为 true,则返回 true
PHP数组的运算符:
4,数据类型
NULL 值
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
$a = 32;
echo "a=$a\n";
$a=null;
对象
对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
<?php
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
function print_vars($obj) {
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
// instantiate one object
$herbie = new Car("white");
// show herbie properties
echo "\herbie: Properties\n";
print_vars($herbie);
?>
结果:
herbie: Properties
color = white
常量:
PHP 常量
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
注释:与变量不同,常量贯穿整个脚本是自动全局的
如需设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称
第二个参数定义常量的值
可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。
下例创建了一个对大小写敏感的常量,值为 “Welcome to W3School.com.cn!”:
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
define("GREETING", "Welcome to W3School.com.cn!", true);
echo greeting;
5,字符串函数
常用的函数:strlen() 函数返回字符串的长度,以字符计。
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
更多:http://www.w3school.com.cn/php/php_ref_string.asp
6,if语句
在 PHP 中,我们可以使用以下条件语句:
if 语句 - 如果指定条件为真,则执行代码
if…else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
if…elseif…else 语句 - 选择若干段代码块之一来执行
如下代码所示:
$t=date("H");
if ($t<"10") {
echo "Have a good morning!";
} elseif ($t<"20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
7,循环语句:
php中的循环语句有while, do…while, for, foreach语句。
while, do…while, for跟C++的语句都相同;
着重说一下foreach:
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
foreach ($array as $value) {
code to be executed;
}
每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
如下所示:
$color=array("red","green","blue");
foreach($color as $value){
echo "$value\n";
结果是:
red
green
blue
8,函数
PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。
在 PHP 创建用户定义函数:用户定义的函数声明以关单 “function” 开头。
注释:函数名对大小写不敏感。函数名应该能够反映函数所执行的任务。
如下所示:
function add_num($one=3,$two=7){
$sum = $one + $two;
return $sum;
}
echo(add_num());
echo(add_num(8,12));
函数add_num计算两个数的和,有两个参数,并给参数赋默认值。在调用的时候可以不传入参数,也可以传参数。
8,关联数组
关联数组是使用您分配给数组的指定键的数组。类似与python中的字典。
创建:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
遍历关联数组:
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
}
结果:
Key=Bill, Value=35Key=Steve, Value=37Key=Peter, Value=43
9,注释:
单行注释:“//”,“#”;
多行注释:“/* */”
10,脚本的引用
require_once的使用方法
require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。
如果已经定义了a.php以后,当在文件b.php中要使用到a.php的类的时候,就可以再b.php开头加上,require_once(a.php);来加载这个a.php,就相当于把a.php的文件的代码复制到了b.php中。类似的方法还有requeire(),include(),include_once()其中带_once字样的方法都是声明只加载一次。
a.php:
<?php
$a=123;
?>
b.php:
<?php
require_once("a.php");
?>
c.php:
<?php
require_once("b.php");
echo $a;
?>
执行
php c.php
>>123
<use的用法,可以将要使用的类的dir目录放在use里面,然后就可以在该脚本中使用该dir下已经定义好的类了。
未完待续…
>