变量定义
1 2 3 4 5 | 1. PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
2. 变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' 。
Note: 在此所说的字母是 a-z,A-Z,以及 ASCII 字符从 127 到 255(0x7f-0xff)。
Note: $this 是一个特殊的变量,它不能被赋值。
例如:
|
登入後複製
1 2 3 | <?php $var = 'right';
$Var = 'wrong';
echo " $var , $Var ";
|
登入後複製
1 2 | 3. PHP 也提供了另外一种方式给变量赋值:引用赋值。改动新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个 & 符号加到将要赋值的变量前(源变量)。
例如:
|
登入後複製
1 2 3 4 5 | <?php
$one = 'Bo';
echo ( $one . "<br>");
echo ( $two );
?>
|
登入後複製
1 2 3 | <?php $one = 25; $two = & $one ;
return 25;
} $bar = &test();
|
登入後複製
算术运算
例子 | 名称 | 结果 |
---|
-$a | 取反 | $a 的负值 |
$a + $b | 加法 | $a 和 $b 的和 |
$a - $b | 减法 | $a 和 $b 的差 |
$a * $b | 乘法 | $a 和 $b 的积 |
$a / $b | 除法 | $a 除以 $b 的商 |
$a % $b | 取模 | $a 除以 $b 的余数 |
$a ** $b | 求幂 | $a 的 $b 次方 |
注:除法运算符总是返回浮点数。只有在下列情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数。
取模运算符的操作数在运算之前都会转换成整数(除去小数部分)。
取模运算符 % 的结果和被除数的符号(正负号)相同。即
b 的结果和 $a 的符号相同。
例如:
1 2 3 4 5 | <?php
echo (10 % 3)."\n";
echo (10 % -3)."\n";
echo (-10 % 3)."\n";
echo (-10 % -3)."\n";
|
登入後複製
for 循环语句,while 循环语句
for
1 2 | for 循环执行代码块指定的次数。
for 循环的语法是:
|
登入後複製
1 2 | for (expression1; expression2; expression3)
statement
|
登入後複製
1 2 3 4 5 | 第一个表达式(expression1)在循环开始前无条件求值(并执行)一次。
expression2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。
expression3 在每次循环之后被求值(并执行)。
每个表达式都可以为空或包括逗号分隔的多个表达式。表达式 expr2 中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。expr2 为空意味着将无限循环下去(和 C 一样,PHP 暗中认为其值为 TRUE)。这可能不像想象中那样没有用,因为经常会希望用有条件的 break 语句来结束循环而不是用 for 的表达式真值判断。
例如:
|
登入後複製
1 2 3 4 5 6 | <?php for ( $i = 1; $i <= 10; $i ++) { echo $i ;
} echo ("<br>"); for ( $i = 1; ; $i ++) { if ( $i > 10) { break ;
} echo $i ;
} echo ("<br>"); $i = 1; for (;;) { if ( $i > 10) { break ;
} echo $i ; $i ++;
} echo ("<br>"); for ( $i = 1; $i <= 10; print $i , $i ++);?>
|
登入後複製
1 2 | for (expr1; expr2; expr3):
statement; ... endfor ;
|
登入後複製
1 2 3 4 5 6 | <?php
$people = Array( Array('name' => 'Allen', 'salt' => 856412),
Array('name' => 'Mrike', 'salt' => 215863)
); for ( $i = 0; $i < count ( $people ); ++ $i ){ $people [ $i ]['salt'] = rand(000000, 999999);
}?>
|
登入後複製
1 | 上面代码执行较慢,因不停的调用 count ().可以先把 count 赋值存储来优化:
|
登入後複製
1 2 3 4 5 | <?php $people = Array( Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
); for ( $i = 0, $size = count ( $people ); $i < $size ; ++ $i )
{ $people [ $i ]['salt'] = rand(000000, 999999);
}?>
|
登入後複製
while循环
1 | while 循环是 PHP 中最简单的循环类型。它和 C 语言中的 while 表现地一样。 while 语句的基本格式是:
|
登入後複製
1 2 | while 语句只要为True则一直重复执行 while 代码块,表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。有时候如果 while 表达式的值一开始就是 FALSE,则循环语句一次都不会执行。
while 循环中用花括号括起一个语句组,或者用替代语法:
|
登入後複製
1 2 | while (expr):
statement ... endwhile ;
|
登入後複製
1 2 | <?php $i = 1; while ( $i <= 10) { echo $i ++;
} echo ("<br>"); $i = 1; while ( $i <= 10): print $i ; $i ++; endwhile ;?>
|
登入後複製
do-while
1 2 3 | (PHP 4, PHP 5, PHP 7)
do - while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和 while 循环主要的区别是 do - while 的循环语句保证会执行先一次(表达式的真值在每次循环结束后检查),然 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE 则整个循环立即终止)。
例如:
|
登入後複製
1 2 3 | <?php $i = 0; do { echo $i ;
} while ( $i > 0);?><?phpdo { if ( $i < 5) { echo "i is not big enough"; break ;
} echo "i is ok"; } while (0);?>
|
登入後複製
0默认False
函数
1 2 3 4 | 任何有效的 PHP 代码都有可能出现在函数内部,甚至包括其它函数和类定义。
函数名和 PHP 中的其它标识符命名规则相同。有效的函数名以字母或下划线打头,后面跟字母,数字或下划线。可以用正则表达式表示为:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*。
函数定义使用" function "
例如:
|
登入後複製
1 2 3 | <?phpfunction one( $arg_1 , $arg_2 , $arg_n ){
echo "Example function .\n"; return $retval ;
}?>
|
登入後複製
1 | 注:函数无需在调用之前被定义,除非是下面两个例子中函数是有条件被定义时。当一个函数是有条件被定义时,必须在调用函数之前定义。
|
登入後複製
1 2 3 4 5 6 7 8 9 | <?php $makefoo = true;
bar(); if ( $makefoo ) { function foo()
{
echo "I don't exist until program execution reaches me.\n";
}
} echo ("<br>");
if ( $makefoo ) foo(); function bar(){
echo "I exist immediately upon program start.\n";
}?>
|
登入後複製
1 2 3 4 5 6 7 | <?phpfunction external(){
function internal()
{
echo "I don't exist until external() is called.\n";
}
} external();internal();
?>
|
登入後複製
1 2 3 | PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。
PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数。
函数名是大小写无关的,在调用函数的时候,建议使用其在定义时相同的形式是个好习惯。
|
登入後複製
递归函数
1 2 3 4 5 6 | <?phpfunction recursion( $a ){
if ( $a < 20) { echo " $a \n";
recursion( $a + 1);
}
}
recursion(1);?>
|
登入後複製
匿名函数
1 | 匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。
|
登入後複製
1 2 3 | <?phpecho preg_replace_callback('~-([a-z])~', function ( $match ) {
return strtoupper ( $match [1]);
}, 'hello-world');
|
登入後複製
1 2 3 | 闭包函数也可以作为变量的值来使用。PHP 会自动把此种表达式转换成内置类 Closure 的对象实例。把一个 closure 对象赋值给一个变量的方式与普通变量赋值的语法是一样的,最后也要加上分号:
Example #2 匿名函数变量赋值示例
|
登入後複製
1 2 3 | <?php $greet = function ( $name ){
printf("Hello %s\r\n", $name );
}; $greet ('World'); $greet ('PHP');?>
|
登入後複製
1 | 闭包可以从父作用域中继承变量。 任何此类变量都应该用 use 语言结构传递进去。 PHP 7.1 起,不能传入此类变量: superglobals、 $this 或者和参数重名。
|
登入後複製
面向对象
1 2 3 4 5 6 7 8 | 在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
在现实世界里我们所面对的事情都是对象,如计算机、电视机、自行车等。
对象的主要三个特性:
对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为。
对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型。
对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同。
比如 Animal(动物) 是一个抽象类,我们可以具体到一只狗跟一只羊,而狗跟羊就是具体的对象,他们有颜色属性,可以写,可以跑等行为状态。
和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
封装 − 封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。
构造函数 − 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
析构函数 − 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做”清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
PHP 类定义
1 2 3 4 5 6 | <?phpclass phpClass {
var $var1 ; var $var2 = "constant string"; function myfunc ( $arg1 , $arg2 ) {
[..]
}
[..]
}?>
|
登入後複製
1 2 3 4 5 6 7 8 9 10 11 | 解析如下:
类使用 class 关键字后加上类名定义。
类名后的一对大括号({})内可以定义变量和方法。
类的变量使用 var 来声明, 变量也可以初始化值。
函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
实例
|
登入後複製
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?phpclass Site {
var $url ; var $title ;
function setUrl( $par ){
$this ->url = $par ;
} function getUrl(){
echo $this ->url . PHP_EOL;
} function setTitle( $par ){
$this ->title = $par ;
} function getTitle(){
echo $this ->title . PHP_EOL;
}
} $runoob = new Site; $taobao = new Site; $google = new Site;
|
登入後複製
1 2 3 | 变量 $this 代表自身的对象。
PHP_EOL 为换行符。
类创建后,我们可以使用 new 运算符来实例化该类的对象:
|
登入後複製
以上是PHP-遠徵的詳細內容。更多資訊請關注PHP中文網其他相關文章!