语法结构,飞速入门

看那段代码

一、算术运算符

算术运算符用于落成种种运算;

  • + 加法运算符 $a + $b

  • – 减法运算符 $a – $b

  • * 乘法运算符 $a * $b

  • /除法运算符 $a / $b

  • % 取摸运算符(求余数) $a % $b

先是章 火速入门

1.字符串的连接

  • 用一个字符串的内容来代表一个变量的操作就是插值(interpolation)。
  • 双引号(””)中,变量名称将被变量值所代替;而在单引号(”)中,变量名称,或者其余别的文件都会不仅修改而发送给浏览器。

2.变量于文本

  • 变量是表示数据的号子。字符串是数额本身。
  • 其二种制定字符串的点子:heredoc语法(<<<),通过点名一个用来终止字符串的终结标记,Heredoc语法允许指定长字符串。

3.明亮标识符

  • 标识符是变量的称谓。
  • 标识符可以是任何长度,而且可以由其它字母、数字、下划线组成;
  • 标识符不可能以数字先导;
  • 在PHP中,标识符是分别轻重缓急写的;
  • 一个变量名称可以与一个函数名称相同;
  • 不可能创制一个拥有与已有函数同名的函数。

4.PHP的数据类型

  • 一定的嵌入函数(例如数据库函数)将赶回resource类型的变量。它们都代表外部资源(例如数据库连接)
  • 大抵无法直接操作一个resource变量,但是平时它们都将被函数重返,而且必须有所作为参数传递给其他函数。

5.类型转换

  • 选取类型转换,可以将一个变量活值转换成另一个种类。
  • 只需在希望举办类型转换的变量从前的圆括号中插入须要转移的临时数据类型即可。
    • $totalqty=0; $totalamount=(float)$totalqty;
    • 诠释:取出保存在$totalqty的值,并将其表达成一个浮点类型,并且将其保存在$totalamonut中。

6.表明和利用常量

  • 一个常量可以保留一个值,例如一个变量值,可是常量值一旦被设定后,在剧本的其他地点就不可以再变动。
  • 用define函数定义常量。
    • 例如:define('OILPRICE',10);
  • 常量名称都是由大写字母组成的
  • 常量和变量之间的一个第一分歧点在于引用一个常量的时候,它前边并没有$符号。
  • 常量能够友善定义,PHP还预订义了好多常量。可以透过后phpinfo()函数来通晓。
  • 常量只好保留布尔值(bool)、整数(int)、浮点数(float)或字符串(string)数据。

7.亮堂变量的功效域

  • 功用域是指在一个本子中某个变量可以采纳或可知的限量。
    • PHP有6项作用域规则
      • 放置一流全局变量可以在本子的其他地点使用和可知;
      • 常量,一旦被声称,将得以在大局可知;也就是说,它们可以在函数内外使用;
      • 在一个剧本中宣示的全局变量在所有脚本中是可知的,但不是在函数内部;
      • 函数内部使用的变量表明为全局变量时,其名目要与全局变量名称相同;
      • 在函数内部创建冰杯表明为静态的变量不能再函数外部可知,不过足以在函数的一再进行进度中保持该值;
      • 在函数内部创造的变量对函数来说是本地的,而当函数终止时,该变量也就不设有了。

8.放置递增递减(++$a和- -$a)和前置递增递减运算符($a++和$a- -)

  • 富有递增操作符都有三个成效:
    • 将变量扩展1;
    • 充实后的值赋给原变量。
  • ++$a前置递增
    • 运转结果是:首先将变量$a加1,再将加1后的结果复制给原变量$a。
    • $a=4;
      echo ++$a;
      echo $a;
      -显示器突显为:2 2
  • $a++前置递增
    • 运作结果是$a的值被重回并呈现在显示器上,然后,$a再加1。
      • $a=4;
        echo $a++;
        echo $a;
    • 显示器显示为:1 2

9.引用操作符(&)

  • 普通来说(既在不行使&符号时),在将一个变量的值(a)赋给另一个变量(b)的时候,先爆发原变量的一个副本,然后再将他保存在内存的其他位置。原变量(a)改变时,变量(b)并不随着一块儿改变。
    • $a=4;
      $b=$a;
      $a=6;
      echo "a=".$a."<br />b=".$b;
    • 显示器展现为:

澳门葡京备用网址 1

  • 若是拔取了引用操作符&则$b也会随着$a举办变更。
    • $a=4;
      $b=&$a;
      echo "a=".$a."<br />b=".$b;
    • 显示屏呈现为:

澳门葡京备用网址 2

  • 为此引用操作符&就好像一个别名,而不是一个指针。$a和$b都指向了内存中相同的地点。
  • 可以透过重置(unset($X))来改变所针对的地点。
    • unset($a);
    • 该重置不会改变$b的值,可是足以破坏$a和值7保存在内存中的连接。
    • 例如:
      • $a=4;
        $b=&$a;
        unset($a);
        echo "a=".$a."<br />b=".$b;
      • 屏幕会展现为:
        ![](https://upload-images.jianshu.io/upload_images/4167376-31b0d8f53fb83256.png)

        -   notice的意思是未定义的变量a在第6行。

10.比较操作符

  • 恒等操作符(===)四个格外号,惟有当恒等操作符两边的操作数相等并且有所相同的数据类型,其重临值才为true。

11.操作符优先级

  • 常见的圆括号是优先级最高的操作符。它的出力就是狠抓圆括号内部操作符的优先级;那样在急需的时候,就可以规避操作符的先行级法则。
    • 可以在一个表达式中应用任意个圆括号,最里层圆括号的表达式将开首总结。
  • 预先级从高到低

澳门葡京备用网址 3

先行级从高到低

12.关于print和echo

  • print语言机构等价于echo语句。这多少个布局都将转变输出;
  • 语法结构,飞速入门。print和echo都不是的确的函数,但是都可以用含有参数的函数形式开展调用;
  • print和echo都得以当作一个操作符:只要将要浮现的字符串放置在echo或print关键字之后;
  • 以函数格局调用print将使其回来一个值(1);
  • print的速度要比echo慢。

13.关于gettype()和settype()

  • 要选取gettype()函数,必须先给它传递一个变量。它将规定变量的序列并赶回一个含有类型名称的字符串;若是变量类型不是正统项目之一,该函数就会回到”unknown
    type”。

  • 要动用settype()函数,必须先给它传递一个要被更改类型的变量,以及一个包蕴了上述项目列表中某个项目标字符串。

  • $foo="5bar"; //string
    $bar=true; //bool
    settype($foo,"integer"); //integer
    settype($bar,"string"); //string
    echo gettype($foo)."<br />".gettype($bar);

  • 屏幕显示:

![](https://upload-images.jianshu.io/upload_images/4167376-20e2c2929d29e126.png)

14.PHP的一定项目测试函数

  • is_array():检查变量是还是不是是数组;
  • is_double()、is_float()、is_real():检查变量是还是不是是浮点数;
  • is_long()、is_int()、is_integer():检查变量是还是不是是整数;
  • is_string():检查变量是还是不是是字符型;
  • is_bool():检查变量是或不是是布尔型;
  • is_object():检查变量是或不是是一个目的;
  • is_resource():检查变量是或不是是一个资源;
  • is_null():检查变量是还是不是为null;
  • is_scalar():检查变量是还是不是是标量,即一个整数、布尔值、字符串或浮点数;
  • is_numeric():检查该变量是不是是任何项目标数字或数字字符串;
  • is_callable():检查变量是还是不是是有效的函数名称。

15.测试变量状态

  • isset()函数:该函数须求一个变量名称作为参数,若是这些变量存在,则赶回true,否则再次回到false;
    • bool isset(mixed var);[;mixed var[,...]])
  • unset()函数:该函数将销毁一个传进来的变量。
    • void unset(mixed var);[;mixed var[,...]])
      -empty()函数:该函数可以用来检查一个变量是或不是留存,以及它的值是或不是为非空或非0,相应的重临值为true或false。
    • bool empty(mixed var);

16.while循环

  • while循环语句只要其规格为真,就会各处重复执行代码块。
  • 当不晓得所需的再一次次数时,可以选拔while循环语句。若是须要一个定位次数的重新,可以考虑采取for循环语句。

17.for循环

  • while循环和for循环是等价的,不相同只是在于for循环尤其紧密。
  • foreach循环语句是专门用于数组的利用。

18.do…while循环

  • do….whild循环与while循环不一样,因为它的测试条件放在整个语句块的终极;也就意味着do….while循环中的语句或语句块至少会实施一回。

19.有关跳出

  • 一经期待截止一个巡回,可以运用break语句。使用了break语句后,脚本就会从循环体前边的率先条语句处起首举办。
  • 倘若指望跳到下三遍巡回,可以应用continue语句。
  • 借使希望终结所有PHP脚本的实践,能够使用exit语句。

PHP2:语法结构

<?php
$a=10;
$b=++$a;  //此语句等同于  ; $a=$a+1 ; $b=$a
echo $a."<br>";
echo $b;
?>
//输出 11 11

二、赋值运算符

赋值运算符,将一个数额值赋给一个变量;
重组赋值运算符,在赋值往日会形成某个运算;

  • $a = 5 赋值

  • $a += 5 加法赋值 $a = $a + 5

  • $a -= 5 减法赋值 $a = $a – 5

  • $a *= 5 乘法赋值 $a = $a * 5

  • $a /= 5 除法赋值 $a = $a / 5

  • $a .= 5 拼接赋值 $a = $a . 5

数值与字符串

前递增把$a的值伸张了1后再回去给$a和$b

三、字符串运算

字符串运算符用于拼接字符串,拼接表示将五个或三个目的组合起来;

    $a = "hello";
    $b = $a."word";  // 表示拼接前后两个字符串
    echo $b;

    $b = "hello";
    $b .= "word!";  // .= 表示$b = $a."word";
    echo $b;

整数,实数,字符串

再看那段

四、递增(++)和递减(–)运算符

递增和递减运算符将变量的此时此刻值加1或减1,可以使代码更简单;

  • ++$i 先加 $i的值加1,然后再回到$i的值;

  • $i++ 后加 先回来$i的值,然后再将$i的值加1;

  • ++$i 先减 $i的值减1,然后再再次来到$i的值;

  • ++$i 后减 先回去$i的值,然后再将$i的值减1;

PHP浮点数的取值范围和C语言的DOUBLE双精相同,若是浮点数不到10E16,而且从不小数部分,则突显时会按整型的楷模显示出来。那时要留意,它的里边是浮点型而不是整型。

<?php
$a=10;
$b=$a++;  //此语句等同于 $b=$a ; $a=$a+1
echo $a."<br>";
echo $b;
?>
// 输出11 10

五、逻辑运算符

  • &&,and 逻辑与

  • ||,or 逻辑或

  • ! 逻辑非

  • xor 异或(有且仅有一个为true,则赶回true)

小数表示法:888.8

后递增把$a先赋值于$b再增添1再次回到$a

六、相比较运算符

相比较运算符,重回一个布尔值TRUE或FALSE;

  • > 大于

  • < 小于

  • >= 大于或等于

  • <= 小于或等于

  • !> 不等于

  • <> 不等于

  • == 等于

  • === 全等于(七个相比的内容里,类型也要一致)

  • !== 不全等于

字符串:单引号串,双引号串,反引号串,转移字符(””双引号,””反斜线,”n换行,”tTAB)

统计,先加后赋,后加先赋

七、伊利运算符

语法:expression1 ? expression2 : expression3;
借使expression1为true则重临expression2,否则重返expression3。

    $a = 5;
    $b = 2;
    $res = $a > $b ?  "yes" : "no";
    echo $res;

澳门葡京备用网址 4

代码执行效果

echo
“path=$PATH”;   那时候会输出当前文件的门径即环境变量

递减同理。

八、运算符的预先级

所谓运算符的先行级值得是哪一个运算符应该先总结。

实际运算符的优先级,参考php手册;

赋值运算,从右到左;

echo   1 + 2 * 3;      // 输出结果为 7

以上内容纯属个人领会,由于水平有限,若有错漏之处敬请谅解。

echo
‘path=$PATH’;    那时候会输也以此字符串

反引号:引号内得是命令

常量和变量

系统常量:

__FILE__以此默许常量是
PHP 程序文件名。若引用文件
(include 或
require)则在引用文件内的该常量为引用文件名,而不是援引它的文书名。

__LINE__那么些默许常量是
PHP 程序行数。若引用文件
(include 或
require)则在引用文件内的该常量为引用文件的行,而不是援引它的公文行。

PHP_VERSION那一个内建常量是
PHP 程序的版本,如
‘3.0.8-dev’。

PHP_OS这几个内建常量指执行
PHP 解析器的操作系统名称,如
‘Linux’。

TRUE这些常量就是真值
(true)。

FALSE这些常量就是伪值
(false)。

E_ERROR那些常量指到近年来的荒谬处。

E_WARNING那一个常量指到近期的告诫处。

E_PARSE本常式为分析语法有神秘难题处。

E_NOTICE这么些常式为发出不平凡但不肯定是大错特错处。例如存取一个不存在的变量。

这些
E_ 开首方式的常量,可以参见
error_reporting() 函数,有越来越多的相干评释。

当然在先后写作时,以上的默许常量是不够用。define()
的功用可以让大家机关定义所须要的常量。见下例

<?php

define(“COPYRIGHT”,
“Copyright © 2000, netleader.126.com”);

echo
COPYRIGHT; 

?>

…..

自定义常量:

define(“definename”,”VALUE”);

变量类型:

interger,duble,string,array,object,boolean(1true,0false)

变量使用:

适度从紧区分轻重缓急写

局地变量,局域于函数内。

全局变量,成效于主程序。

$GLOBALS数组与global声明

函数里面要拔取全局变量的时候要用global来声称。例:

function
myfunc(){

global
$PHP_SELF;

echo
$PHP_SELF;

}

myfunc();

只顾:PHP函数是不区分轻重缓急写的

静态变量:

static
$mystr;

$mystr=”hello”;

echo
$mystr;

变量的变量:

a=”hello”;

$$a=”world”;

echo
“$a,$hello”; //hello,world

echo
“$a,${$a}”; //hello,world

隐式类型转换

$a[0]=123;

$a[1]=234;

echo
$a;    //显示Array

$b=”123abc”;

echo
$b+1; //显示124

echo
$b.”123″; //显示123abc123

$a=12345678901234;

$b=12345678901234;

$c=$a+$b;

$d=“123abc”;

echo
$c;   //24691357802468

echo
(int)$c;  //-2147483648

echo(int)$d; //123

运算符

算术运算符

例子

名称

结果

-$a

取反

$a 的负值。

$a + $b

加法

$a 和 $b 的和。

$a – $b

减法

$a 和 $b 的差。

$a * $b

乘法

$a 和 $b 的积。

$a / $b

除法

$a 除以 $b 的商。

$a % $b

取模

$a 除以 $b
的余数。

位运算符

例子

名称

结果

$a & $b

And(按位与)

将把 $a 和 $b 中都为 1
的位设为 1。

$a | $b

Or(按位或)

将把 $a 或者 $b 中为 1
的位设为 1。

$a ^ $b

Xor(按位异或)

将把 $a 和 $b
中分歧的位设为 1。

~ $a

Not(按位非)

将 $a 中为 0 的位设为
1,反之亦然。

$a << $b

Shift
left(左移)

将 $a 中的位向左移动 $b
次(每四次活动都意味“乘以 2”)。

$a >> $b

Shift
right(右移)

将 $a 中的位向右移动 $b
次(每四回活动都意味着“除以 2”)。

正如运算符

例子

名称

结果

$a == $b

等于

TRUE,如果 $a 等于
$b。

$a === $b

全等

TRUE,如果 $a 等于
$b,并且它们的项目也一致。(PHP 4 引进)

$a != $b

不等

TRUE,如果 $a 不等于
$b。

$a <> $b

不等

TRUE,如果 $a 不等于
$b。

$a !== $b

非全等

TRUE,假若 $a 不对等
$b,或者它们的体系不一致。(PHP 4 引进)

$a < $b

小与

TRUE,如若 $a 严谨小于
$b。

$a > $b

大于

TRUE,如果 $a 严格
$b。

$a <= $b

稍差于等于

TRUE,借使 $a
小于或者等于 $b。

递增/递减运算符

例子

名称

效果

++$a

前加

$a 的值加一,然后重返$a。

$a++

后加

重回 $a,然后将 $a
的值加一。

–$a

前减

$a 的值减一, 然后赶回
$a。

$a–

后减

回到 $a,然后将 $a
的值减一。

逻辑运算符

例子

名称

结果

$a and $b

And(逻辑与)

TRUE,如果 $a 与 $b 都为
TRUE。

$a or $b

Or(逻辑或)

TRUE,如果 $a 或 $b
任一为 TRUE。

$a xor $b

Xor(逻辑异或)

TRUE,如若 $a 或 $b
任一为 TRUE,但不一致时是。

! $a

Not(逻辑非)

TRUE,如果 $a 不为
TRUE。

$a && $b

And(逻辑与)

TRUE,如果 $a 与 $b 都为
TRUE。

$a || $b

Or(逻辑或)

TRUE,如果 $a 或 $b
任一为 TRUE。

或”和“与”居然有2种写法,要是你使用C/C++,C#,Java等语言的话,就用“&&”或”||”吧。假若你是VB的话,就用and,和or。当然你也能够2种都用。它们有如何分别呢?优先级的两样而已。”&&“与”||”比”and“和”or“优先级要高。

数组运算符

例子

名称

结果

$a + $b

联合

$a 和 $b 的联合。

$a == $b

相等

若是 $a 和 $b
具有同样的键/值对则为 TRUE。

$a === $b

全等

比方 $a 和 $b
具有同样的键/值对同时逐一和花色都相同则为 TRUE。

$a != $b

不等

如果 $a 不等于 $b 则为
TRUE。

$a <> $b

不等

如果 $a 不等于 $b 则为
TRUE。

$a !== $b

不全等

一经 $a 不全等于 $b 则为
TRUE。

任何三种运算符

·首先看望位运算里的左移(<<)或右移(>>),其实并未什么样两样,只是符号不雷同而已。

·看六柱预测比较运算法里的“==”,“===”,那七个相比有趣,它们有何样分别呢?

 1 <?php
 2 var_dump(0 == “a”); // 0 == 0 -> true在PHP里,即使整型和字符串相比较时,字符串会自动的转向为数值
 3 var_dump(“1” == “01”); // 1 == 1 -> true
 4 
 5 switch (“a”) {
 6 case 0:
 7    echo “0”;
 8    break;
 9 case “a”: // never reached because “a” is already matched with 0
10    echo “a”;
11    break;
12 }

字符串转化为数值的规格是怎么着?

1)假使包含“.”,“e”或“E”其中任何一个字符的话,字符串被当作
float来求值。否则就被看作整数。

 2)该值由字符串最前面的有些决定。若是字符串以合法的数字数据开端,就用该数字作为其值,否则其值为
0(零)。合法数字数据由可选的正负号起先,前边随着一个或多少个数字(可选地概括十进制分数),前边跟着可选的指数。指数是一个“e”或者“E”前面随着一个或多个数字。

“===”,3个非常符号,它表示不仅最终转化的数值相等,而且档次也应该等于。

赋值运算符

<?php
 $a=’hello’; //$a是hello。
 $a+=1;      //$a是1,二元赋值符
 $b=’world’;
 $c=’hello’;
 $c.=$b;//$c是”hello world”
?>

荒谬执行运算符

PHP
援救一个不当决定运算符:@。当将其放置在一个 PHP
表达式在此之前,该表明式可能暴发的别样错误新闻都被忽略掉

要是激活了
track_errors特性,表达式所暴发的其它错误音信都被存放在在变量
$php_errormsg 中。此变量在历次出错时都会被遮住,所以只要想用它的话就要趁早反省。

例如:

<?php
/* Intentional file error */
$my_file = @file (‘non_existent_file’) or
   die (“Failed opening file: error was ‘$php_errormsg'”);
// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn’t exist.
?> 

举办运算符

PHP
辅助一个执行运算符:反引号(“)。注意那不是单引号!PHP
将尝试将反引号中的内容作为外壳命令来执行,并将其出口新闻重回(例如,可以赋给一个变量而不是大致地扬弃到标准输出)。使用反引号运算符“`”的作用与函数
shell_exec()如出一辙。反引号位于键盘的”~“键那里。

例如:

1 <?php
2  $out=`dir c:`;
3  echo ‘<pre>’.$out.'</pre>’;
4 ?>

结果为:

 Volume in drive C has no label.
 Volume Serial Number is A019-7D77

 Directory of C:”

…..

递增/递减运算符

注:
递增/递减运算符不影响布尔值。递减NULL值也尚未效应,但是递增NULL的结果是
1。

例子

名称

效果

++$a

前加

$a 的值加一,然后返回 $a。

$a++

后加

返回 $a,然后将 $a 的值加一。

–$a

前减

$a 的值减一,然后返回 $a。

$a–

后减

返回 $a,然后将 $a 的值减

项目运算符

PHP
有一个系列运算符:instanceof。instanceof
用来测定一个加以的靶子是否来自指定的靶子类。instanceof 运算符是 PHP 5
引进的。此前用 is_a(),但是 is_a() 已经不合时宜了,最好用
instanceof。

C#里是is,而Java是instanceof,和PHP一样。

例如:

 1 <?php
 2 class A { }
 3 class B { }
 4 
 5 $thing = new A;
 6 
 7 if ($thing instanceof A) {
 8     echo ‘A’;
 9 }
10 if ($thing instanceof B) {
11     echo ‘B’;
12 }
13 ?>

字符运算符

有七个字符串运算符。第二个是一连运算符(“.”),它回到其左右参数连接后的字符串。第三个是连接赋值运算符(“.=”),它将右边参数附加到左手的参数后。

数组

PHP
中的数组实际上是一个墨守成规图。图是一种把 values 映射到 keys
的品种。此类型在诸多上面做了优化,因而得以把它正是真的的数组来选拔,或列表(矢量),散列表(是图的一种完成),字典,集合,栈,队列以及更加多可能性。因为可以用另一个
PHP 数组作为值,也能够很不难地模拟树。
Array的用法

新建一个Array对象,由于Array是key和value映射的。所以Array协理一定数额以分集团分隔的值对。

<?php
$arr = array(“Hello” => “Word”, 12 => true);
echo $arr[“Hello”]; // bar
echo $arr[12];    // 1
?> 

请记key
可以是整型或者字符串。如果键名是一个整型的正经表明方法,取整,假诺是float型,转化为整型。与之相比较,值则可以为其余值。
要是你想达成多维数组如下代码:

<?php
$arr = array(“somearray” => array(6 => 5, 13 => 9, “a” => 42));
echo $arr[“somearray”][6];    // 5
echo $arr[“somearray”][13];  // 9
echo $arr[“somearray”][“a”];  // 42
?> 

新建或删除一个数组对象代码:

 1 ?php
 2 $arr = array(5 => 1, 12 => 2);
 3 $arr[] = 56;    // 相当于 $arr[13] = 56;
 4                 //因为第一个因素的键是12       
 5 $arr[“x”] = 42; // 创造一个新因素,且键为字符串
 6                 //”x”,值位42.
 7 unset($arr[5]); //删除键位5的因素。
 8 unset($arr);    // 删除所有数组
 9                 //unset()是一函数,从字面的情趣上                      
                  
//看也亮堂是吊销设置
10 ?>

语句

伊利条件运算符即:$first
? $second : $third

条件

if..else

if
(expr) {

 statement

}

范例:本例省略大括号。

<?php

if
(date(“D”) == “Sat”) echo “周末了,狂欢去”;

?>

范例:本例的实施部分有三行,不可省略大括号。

<?php

if
(file_exists(“/usr/local/lib/php3.ini”)) {

 echo
“以下是 PHP3
的安顿文件<p><pre>”n”;

 readfile(“/usr/local/lib/php3.ini”);

 echo
“</pre>”n”;

}

?>

if
(expr) {

 statement1

}
else {

 statement2

}

一直看下边的例证

<?php

if ($a
> $b) {

 echo
“a 比 b
大”;

}
elseif ($a == $b) {

 echo “a
等于 b”;

} else
{

 echo
“a 比 b
小”;

}

?>

switch

switch
(expr) {

 case
expr1:

   
statement1;

   
break;

 case
expr2:

   
statement2;

   
break;

   
:

 default:

   
statementN;

   
break;

}

<?php

switch
(date(“D”)) {

 case
“Mon”:

   
echo “后天星期六”;

   
break;

 case
“Tue”:

   
echo “今日周二”;

   
break;

 case
“Fri”:

澳门葡京备用网址 ,   
echo “今日周天”;

   
break;

 default:

   
echo “昨日放假”;

   
break;

}

?>

循环

do..while
循环

while
(expr) {

 statement

}

<?php

$i =
1;

while
($i <= 10) {

 print
$i++;

 echo
“. 将来不敢了<br>”n”;

}

?>

while
可以不用大括号来包住执行部分,而利用冒号加上
endwhile。见下例

<?php

$i =
1;

while
($i <= 10):

 print
$i++;

 echo
“. 将来不敢了<br>”n”;

endwhile;

?>

for
循环

for
(expr1; expr2; expr3) {

 statement

}

<?php

for
($i=1; $i<=10; $i++) {

 echo
“$i. 以后不敢了<br>”n”;

}

?>

foreach

foreach
(array_expression as $value)

   
statement

foreach
(array_expression as $key => $value)

   
statement

 第一种格式遍历给定的
array_expression 数组。每一回循环中,当前单元的值被赋给 $value
并且数组内部的指针向前移一步(因而下一回巡回少校  
会获得下一个单元)。

 第二种格式做相同的事,只除了当前单元的键名也会在每回循环中被赋给变量
$key。

其余的流水线控制

break
用来跳出如今进行的轮回,如下例

<?php

$i =
0;

while
($i < 10) {

 if
($arr[$i] == “stop”) {

   
break;

 }

 $i++;

}

?>

continue
马上停下目前执行循环,并重回循环的基准判断处,见下例

<?php

while
(list($key,$value) = each($arr)) {

 if
($key % 2) { // 略过偶数

   
continue;

 }

 do_something_odd
($value);

}

?>

函数和对象

函数简介:

分为系统函数和用户函数。

PHP中的函数FUNCTION包含有重返值的及无再次来到值。PHP中函数不区分轻重缓急写。

函数原型:

回去类型函数名称(类型参数1,类型参数2…..);

系统函数:

abs(number):取相对值

sin,cos,log,log10,exp,pow,pi

srand(int):随机数种子

int
rand([int min],[int max]):取得自由数值

….

字符串函数:

strtolower(string
str):转小写

strtoupper(string
str):转大写

trim(string
str):删除左右空格

substr(string
string,int start,int [length]):从STRING中取定长字符串

strlen(string
str):重临INT类型,取字符串的长度

strpos(string
母串,string
待查字符,int
[offset]):寻找字符串中某字符开头出现处

strcmp(string
str1,string str2):字符串比较

nl2br(string
str):实用HTML格式化

查找字符串的职责可以选取strpos()以及strrpos().

轮换的话,调用str_replace()以及substr_replace().

….

加密函数:

md5(string
str):重返一个MD5加密的字符串

文件系统函数:

filesize(string
filename):获取文件的尺寸

feof(int
fp):是还是不是到文件底部

fopen(string
filename,string mode):打开文件或者URL

fclose(int
fp):关闭已打开的文件

fread()

…..

网络函数:

fsockopen(string
hostname,int port,int [error],string p[errorstr],int
[timeout]):打开互联网的socket链接,取远程文件的内容

gethostbyname(string
hostname):DNS查询,返回IP地址

….

MYSQL数据库函数:

mysql_connect(string
[hostname] [:port],string [username],string
[pwd]):mysql服务器链接

…..

用户函数

申明函数:

function
myfunc($arg_1,$arg_2,……)

{

….

return
$retval;

}

调用:myfunc(参数列表);

参数的值,平日拔取传值格局输入,也能够应用传址的点子,传入参数的指针。方法就是在参数的前方加上&符号即可。

变量的效率域:函数作用域和页面功能域(global申明即可)

函数的嵌套和递归:一个函数调用另一个函数,函数调用自己(注意死循环)

参数默许值:能够给参数指定默许值。

例:

function
myfunc($a,$b,$c=”默认值”){

echo

}

myfunc(3,4);

myfunc(1,2,”不用默许值
“);

标准函数的例子:

 1 <?php
 2  $isRequired=true;
 3  if($isRequired)
 4   {
 5       function func($op1,$op2)
 6        {
 7             return $op1+$op2;
 8       }
 9   }
10   if($isRequired)
11      echo “func(1,3)=”.func(1,3);
12    
13    function helloWorld()
14    {
15         return “Hello,world”;
16    }
17     echo ‘<br>Call function helloWorld():’.helloWorld();
18 ?>

输出结果为:

func(1,3)=4
Call function helloWorld():Hello,world

函数中的函数:

 1 <?php
 2 function func()
 3 {
 4   function subfunc()
 5   {
 6    echo “I don’t exist until func() is called.”n”;
 7    echo “I have alrady made “;
 8   }
 9 }
10 
11 /* We can’t call subfunc() yet
12    since it doesn’t exist. */
13 
14 func();
15 
16 /* Now we can call subfunc(),
17    func()’s processesing has
18    made it accessable. */
19 
20 subfunc();
21 
22 ?> 

 输出结果是:

I
don’t exist until func() is called. I have alrady made

对象

PHP
唯有体系(class)、方法
(method)、属性、以及单一继承 (extensions)
等。

先后中的 $this
类变量也和 $GLOBALS

$php_errormsg 七个变量一样,在 PHP
中属于至极的变量。$this
变量只用在类品种中,表示类的自家。

<?php

//
程序名:
cart.inc

class
Cart {

 var
$items; // 手推车类

 //
本方法参与 $num
件物品到手推车中
(加到 $artnr
变量)

 function
add_item ($artnr, $num) {

   
$this->items[$artnr] += $num;

 }

 //
本方法从手推车收缩 $num
件物品
(从 $artnr
变量减掉)

 function
remove_item ($artnr, $num) {

    if
($this->items[$artnr] > $num) {

     
$this->items[$artnr] -= $num;

     
return true;

    }
else {

     
return false;

   
}  

 }

}

?>

要使用手推车可以用接近下例的法子。能够先将每个类存成 Include
文件,再将它 require
或 include
进来。在概念变量 $cart
时,要运用 new
的保留字,表示 $cart
使用 Cart
类。使用 ->
符号,表示执行类的主意。

<?php

require(“cart.inc”);

$cart =
new Cart;

$cart->add_item(“10”,
1);

?>

今后再规划有记名的手推车。记名手推车从手推车遗传下来,由此手推车拥有的格局及质量,记名手推车也有,而记名手推车比手推车扩张了名字的法子
(或许该称属性较适宜)。

从下例中得以见见,子类 Named_Cart
使用 extends
来继承其父类
Cart。即使 Named_Cart
类中并未伸张物品及裁减物品的不二法门,但是是因为遗传的表征,父类有的东西它都有。

<?php

//
程序名:
named_cart.inc

require(“cart.inc”);

class
Named_Cart extends Cart {

 var
$owner;

 function
set_owner ($name) {

   
$this->owner = $name;

 }

}

?>

要接纳记名手推车类,请看上边的范例。当然那不算太好的宏图,每个子类都直接 require
它的父类,会促成服务器在 I/O
上边的承负。在实作时,可以将全种类列的类在同一个程序文件中,从最早的袓先类到最后的子孙类,也造福日后改正。

<?php

require(“named_cart.inc”);

$ncart
= new Named_Cart;           // 建立类变量

$ncart->set_owner
(“CyberRidder”); // 配置类的记名属性

echo
$ncart->owner;                // 突显类的记名属性

$ncart->add_item
(“10”, 1);        // 从父类遗传的方式也可应用

?>

例:

class
foo{

function
do_foo(){

echo
“”;

}

}

$doo=new
foo;

$doo->do_foo(); 调用对象中的函数

引用文件

引用文件的法门有三种:require

include。

require
的接纳格局如
require(“MyRequireFile.php”); 。那几个函数寻常位于
PHP 程序的最前边,PHP
程序在推行前,就会先读入
require 所指定引入的文本,使它成为
PHP 程序网页的一部份。

include
使用办法如
include(“MyIncludeFile.php”); 。这些函数一般是身处流程控制的处理局地中。PHP
程序网页在读到
include 的文本时,才将它读进去。那种办法,可以把程序执行时的流程不难化。

程序注释

<?php

 echo
“那是首先种例子。”n”;
// 本例是
C++ 语法的注释

 /*
本例采取多行的

    
注释格局     
*/

 echo
“那是第二种例子。”n”;

 echo
“那是第三种例子。”n”;
# 本例使用
UNIX Shell 语法注释

?>

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website