php第十一天,语法结构

by admin on 2019年2月10日

PHP
(personal
homepage)是HTML内嵌式语言,是一种在服务器端执行的停放HTML文档的脚本语言。由zend公司掩护。
何以要设置web服务器?因为大家浏览器要取多少,从web服务器湖获取。httpwatch工具得以获取发送和收受的数目,有利于大家询问的更不亦乐乎。服务器除Appche还有微软iis服务器、lighttpd服务器(读ligty)等.

PHP
(personal
homepage)是HTML内嵌式语言,是一种在劳务器端执行的放置HTML文档的脚本语言。由zend公司维护。
怎么要安装web服务器?因为我们浏览器要取多少,从web服务器湖获取。httpwatch工具得以得到发送和承受的数量,有利于大家精通的更透彻。服务器除Appche还有微软iis服务器、lighttpd服务器(读ligty)等.

1、假设在函数中,大家不期望利用某个变量,或者是希
望到底的不再行使某个变量,则可以运用unset(变量名
),将该变量彻底删除
$a=12;
function abc($a){
unset($a);
$a=50;
}

PHP2:语法结构

Appche服务器

Appche服务器

abc($a);
echo ‘$a=’.$a;//the result is $a=12
2、在Php函数中大家得以给一些参数,赋一个默许的值

数值与字符串

Appche服务器跨所有平台。可以因而ssh软件远程控制伏务器。那时候要采取命令行。管理appche可以运用命令行。cd:切换目录。appache启动之后,会占据一个端口,默许80端口监听。一台机器可以有1-65535号端口,在支付中,可以应用netstat
-an来查看有何端口在监听。端口越少越安全。如果发现有杰出端口监听,则足以关闭该端口。用netstat
-anb发现是哪位程序在监听,从而关闭。一个端口只好被一个顺序监听。自己电脑发送请求时也有端口,是随意分配的,包罗在URL中,用完就自由了。

Appche服务器跨所有平台。可以经过ssh软件远程控打败务器。那时候要使用命令行。管理appche可以接纳命令行。cd:切换目录。appache启动之后,会占用一个端口,默许80端口监听。一台机械能够有1-65535号端口,在支付中,能够动用netstat
-an来查阅有哪些端口在监听。端口越少越安全。如若发现有分外端口监听,则可以关闭该端口。用netstat
-anb发现是哪位程序在监听,从而关闭。一个端口只好被一个先后监听。自己电脑发送请求时也有端口,是轻易分配的,包罗在URL中,用完就自由了。

function abc(){

整数,实数,字符串

appche目录结构
bin目录用于存放常用命令
cgi-bin该目录存放Linux下常用命令
conf目录用来存放在配置文件
error目录存放启动和关闭时的荒谬记录
htdocs目录用于存放站点文件(html)多个站点可以透过文件夹分类。
icons目录存放图标
logs目录记录appche相关日志
manual目录手册
modules目录appche模块appche以模块格局管理

appche目录结构
bin目录用于存放常用命令
cgi-bin该目录存放Linux下常用命令
conf目录用来存放在配置文件
error目录存放启动和关闭时的不当记录
htdocs目录用于存放站点文件(html)多个站点可以经过文件夹分类。
icons目录存放图标
logs目录记录appche相关日志
manual目录手册
modules目录appche模块appche以模块格局管理

}

PHP浮点数的取值范围和C语言的DOUBLE双精相同,倘使浮点数不到10E16,而且没有小数部分,则显示时会按整型的旗帜突显出来。那时要留心,它的里边是浮点型而不是整型。

虚拟主机的配备步骤

虚拟主机的计划步骤

3、php传递变量的时候,默许是值传递,假若急需引用
(地址)传递,可以拔取&变量名

小数表示法:888.8

1.在httpd-conf中启用httpd-vhosts.conf文件 

1.在httpd-conf中启用httpd-vhosts.conf文件 


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

2.在httpd-vhosts.conf文件中做布置

2.在httpd-vhosts.conf文件中做计划

位运算

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

3.改动hosts文件(重新审视访问一个网页的真正流程)
详细表明访问网页的流程 
浏览器回车后暴发的事
1.解析主机名
2.询问当地文件hosts(windows下),该文件里有一个IP地址,查询和域名的关联,查询不到,转到外网dns域名服务器查询IP和域名的关系,查到了会向appche发送http请求,appche得到请求后要分析主机,解析web站点名称解析资源名称,取出一个资源文件,如若取到了,则赶回该页面。

3.改动hosts文件(重新审视访问一个网页的确实流程)
详细表达访问网页的流程 
浏览器回车后发生的事
1.解析主机名
2.查询当地文件hosts(windows下),该文件里有一个IP地址,查询和域名的涉嫌,查询不到,转到外网dns域名服务器查询IP和域名的涉及,查到了会向appche发送http请求,appche得到请求后要分析主机,解析web站点名称解析资源名称,取出一个资源文件,倘诺取到了,则赶回该页面。

二进制:逢二进一(0,1,最平稳,易于电子形式完毕
,同时,通过0,1,组合可以代表其他一个数字)
多少个第一概念:原码、反码、补码
1、二进制的最高位是标志位,0意味正数,1表示负数
2、正数的原码、反码、补码都如出一辙
3、负数的反码,它的原码符号位不变,其余位取反
4、负数的补码=它的反码+1
5、0的反码,补码都是0
6、php里没有无符号数,即,php中的数都是有号子的
7、在处理器运算的时候,都是以补码的章程来运算的
即,不管一个数是正数照旧负数,都要被转成补码,然
后再展开演算
php中有4个位运算:按位与&、按位或|、按位异或^、按
位取反~
按位与&:两位全为1,结果为1
按位或|:两位有一个为1,结果为1
按位异或^:两位一个为0,一个为1,结果为1
按位取反~:0->1,1->0
测算时都是要把原码转换成补码,获得结果为补码,再
更换为原码,才是终极结出
~2=?
2&3=?
2|3=?
~-5=?
13&7=?
5|4=?
-3^3=?

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

一个IP(七个端口)和七个域名绑定
方案一:通过端口来分裂差其余站点

一个IP(七个端口)和多个域名绑定
方案一:通过端口来分别不一样的站点

php中有2个活动运算:左移<<、右移>>
算术右移:低位溢出,符号位不变,并用符号位补溢出
的高位
算术左移:符号位不变,低位补0
$a=1>>2;
$b=-1>>2;
$c=1<<2;
$d=-1<<2;

bf88必发唯一官网,反引号:引号内得是命令

1.先开发好自己的网站

1.先开发好团结的网站

3*8<—->3<<3高效取得格局

常量和变量

2.布署大家的httpd.conf文件 启用里面的virual
hosts文件,即起步虚拟主机的计划

2.配备大家的httpd.conf文件 启用里面的virual
hosts文件,即起步虚拟主机的布置


系统常量:

3.配置httpd-hosts.conf文件。

3.配置httpd-hosts.conf文件。

数组 排序 查找
在php中,数组就是主要字和值的集纳
1、创造数组
率先种办法:
$arr[0]=123;
$arr[1]=1;
$arr[2]=12;

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

4 在hosts文件中添加IP和域名的照应关系

4 在hosts文件中添加IP和域名的附和关系

[0]—>称为下标,或者根本字
$arr[0]—>称为数组的一个因素
$arr[0]=123—>123表示该$arr[0]=元素对应的值
$arr—>那个是该数组的名称

__LINE__php第十一天,语法结构。本条默认常量是
PHP 程序行数。若引用文件
(include 或
require)则在引用文件内的该常量为引用文件的行,而不是引用它的文本行。

 添加一个新的域名与该IP绑定
1.开发新的网站

 添加一个新的域名与该IP绑定
1.开发新的网站

在php数组中,每个元素存放的值可以是轻易数据类型

PHP_VERSION这么些内建常量是
PHP 程序的本子,如
‘3.0.8-dev’。

2.添加新的虚拟主机

2.添加新的虚拟主机

其次种方法:
$数组名=array(值,……);
$arr=array(2,hello,4,8.9,7,8);

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

3在httpd.conf中让appche监听81端口,appche可以而且监听两个端口

3在httpd.conf中让appche监听81端口,appche可以同时监听多个端口

其二种形式:
在默认情形下,元素的下标是从0开端编号的,然则事实上
上,也得以友善指定
$arr[’logo‘]=’北京’;
$arr[‘shb’]=33;

TRUE那几个常量就是真值
(true)。

4在hosts文件中添加新的域名

4在hosts文件中添加新的域名


$arr=array(“logo”=>”北京”,”shb”=>”33″,”hard”=>”easy”);
foreach适用范围更广
注意事项:
1、即使我们成立一个数组的时候 ,没有给某个元素指
定下标,php就会活动的用当下最大的百般下标值(整数
),加上1看作该因素的下标(关键字)
2、假诺大家给某个元素的下标一样,则会覆盖原来的值
3、
$arr[true]<==>$arr[1]
$arr[false]<==>$arr[0]
$arr[null]<==>$arr[”]或$arr[“”]
设若小数作为键值,则自动截断小数部分
4、我们常常能够利用print_r来显示任何数组的事态
5、php语言中,数组是可以动态增进的

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

方案二:通过servername端区分不相同的域名

方案二:通过servername端区分差其他域名

 

E_ERROR这一个常量指到目前的失实处。

1.开发新网站

1.开发新网站

 

E_WARNING这一个常量指到如今的警示处。

2.在httpd-vhosts.conf文件中加上配置文件,和方案一配置有所不一致,要指定域名ServerName
www.sth.com。

2.在httpd-vhosts.conf文件中加上配置文件,和方案一配置有所分歧,要指定域名ServerName
www.sth.com。

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

3.在hosts文件中添加IP和域名的相应关系,和方案一一模一样。

3.在hosts文件中添加IP和域名的对应关系,和方案一相同。

E_NOTICE这几个常式为发出不平时但不肯定是漏洞百出处。例如存取一个不设有的变量。

网站资源文件(包罗PHP文件)和appche在同样台机械,叫应用服务器,浏览器在另一台机器。数据库一般不在应用服务器,在特意数据库服务器上。

网站资源文件(包含PHP文件)和appche在同样台机械,叫应用服务器,浏览器在另一台机器。数据库一般不在应用服务器,在特意数据库服务器上。

这些
E_ 伊始形式的常量,可以参见
error_reporting() 函数,有越多的相干声明。

appche和PHP须求组合,PHP调用进度如下
浏览器回车,解析主机名例如sohu,查询和主机名对应的IP,查不到就到外网dns查询,查到了,得到IP后向appche发送http请求,appche解析主机(appche管理七个域名),取出站点/目录,解析出资源名(网站的有血有肉哪一页),将呼吁文件重返,PHP代码在appche已经执行完了,浏览器获得的是服务器执行完后的代码,再分析后出示出来。
PHP代码修改了不须求重启appche。

appche和PHP要求组合,PHP调用进程如下
浏览器回车,解析主机名例如sohu,查询和主机名对应的IP,查不到就到外网dns查询,查到了,得到IP后向appche发送http请求,appche解析主机(appche管理多个域名),取出站点/目录,解析出资源名(网站的有血有肉哪一页),将请求文件再次回到,PHP代码在appche已经执行完了,浏览器得到的是服务器执行完后的代码,再分析后显得出来。
PHP代码修改了不需要重启appche。

自然在程序写作时,以上的默许常量是不够用。define()
的效应可以让我们机关定义所需求的常量。见下例

PHP基本语法
<?php ?>和HTML可以互相嵌套。
注释:/**/多行,//单行 ,#Unix风格。

PHP基本语法
<?php ?>和HTML可以相互嵌套。
注释:/**/多行,//单行 ,#Unix风格。

<?php

PHP基本语法、变量,常量,数据类型
1
php中定义一个变量要以$符号初叶,变量的数据类型不是一定的,是按照运行时上下文确定的。所以PHP是弱数据类型编程语言。

PHP基本语法、变量,常量,数据类型
1
php中定义一个变量要以$符号开首,变量的数据类型不是一定的,是根据运行时上下文确定的。所以PHP是弱数据类型编程语言。

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

2.PHP区分大小写。
一个实惠的变量由字母或下划线起先
骨干数据类型:整型,浮点型,布尔型,字符串型
复合数据类型:数组,对象
出奇数据类型:null 资源类型
PHP中,一个整数一般占三个字节,一个字节占8bit,最高位代表符号位,0代表正数,1代表负数PHP_INT_SIZE
一个整数最大是有些?用PHP_INT_MAX可查阅,负整数和正整数最大值(相对值)一样。如果整数范围超出最大范围,则自动类型变为float类型。

2.PHP区分轻重缓急写。
一个立见成效的变量由字母或下划线开端
主导数据类型:整型,浮点型,布尔型,字符串型
复合数据类型:数组,对象
出色数据类型:null 资源类型
PHP中,一个平头一般占多个字节,一个字节占8bit,最高位表示符号位,0表示正数,1表示负数PHP_INT_SIZE
一个整数最大是有点?用PHP_INT_MAX可查看,负整数和正整数最大值(相对值)一样。假如整数范围超出最大范围,则自动类型变为float类型。

echo
COPYRIGHT; 

浮点数:精度最大14位,从左边初阶盘算,首个非0的数初始预计精度

浮点数:精度最大14位,从左侧早先揣测,第二个非0的数伊始计算精度

?>

字符型:一个字符占用一个字节,理论上尚无轻重限制,只要不当先内存就足以
比较符==等于,===全等
逻辑异或Xor:七个有一个为true,但分化时为true ,为true

字符型:一个字符占用一个字节,理论上尚无大小限制,只要不超越内存就足以
比较符==等于,===全等
逻辑异或Xor:三个有一个为true,但不一样时为true ,为true

…..

岁朝运算符
表达式1?表达式2:表达式3

大年底一运算符
表达式1?表达式2:表达式3

自定义常量:

字符串运算符
.:连接三个字符串(基本数据类型)

字符串运算符
.:连接五个字符串(基本数据类型)

define(“definename”,”VALUE”);

序列运算符
instanceof用于确定一个变量是还是不是属于某一种类(只可以判断目的类型)

体系运算符
instanceof用于确定一个变量是还是不是属于某一品种(只好判断目标类型)

变量类型:

三大流程控制语句
1.顺序控制
2.循环决定
3.口径决定
switch(表达式){
case 常量1:语句;
break;
case 常量2:语句;
break;
case 常量3:语句;
break;
case 常量n:语句;
break;
defual:语句;//可以没有
break;
}
break语句:停止近年来的大循环或switch语句,可以给一个数字代表退出到第几层。break
3;
break代表不玩游戏了,continue表示重新从第一关起来玩。
continue也可以带一个数字,表示从第几层开端走
常量:前边不须要$符号。用define()函数定义,而无法经过赋值语句;常量的值是标量[主干数据类型](string,integer,float,boolean),一旦定义,不可以改改其值。,不期望某个值变化时接纳常量,比如圆周率,税率。
常量的称谓全体大写,用下划线间隔
概念常量二种办法:
define(“TAX_RATE”,0.08);
const TAX_RATE2=0.1;

三大流程控制语句
1.顺序控制
2.循环控制
3.尺度决定
switch(表达式){
case 常量1:语句;
break;
case 常量2:语句;
break;
case 常量3:语句;
break;
case 常量n:语句;
break;
defual:语句;//可以没有
break;
}
break语句:为止方今的巡回或switch语句,可以给一个数字代表退出到第几层。break
3;
break代表不玩游戏了,continue表示重新从第一关起来玩。
continue也足以带一个数字,表示从第几层伊始走
常量:前边不须求$符号。用define()函数定义,而不可以透过赋值语句;常量的值是标量[着力数据类型](string,integer,float,boolean),一旦定义,无法改改其值。,不愿意某个值变化时采用常量,比如圆周率,税率。
常量的名目全体大写,用下划线间隔
概念常量二种艺术:
define(“TAX_RATE”,0.08);
const TAX_RATE2=0.1;

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

函数:调用:require ‘funcs.php’;
function 函数名(参数列表){
//函数体;
//return 语句,重返一个结实,可以没有。

函数:调用:require ‘funcs.php’;
function 函数名(参数列表){
//函数体;
//return 语句,重返一个结果,可以没有。

变量使用:

}

}

严谨分歧轻重缓急写

PHP中页面互相调用
为了成功a.php中得以利用到function01.php中定义的函数,大家须要运用以下函数:
require()和require_once()函数。
include()和include_once()函数。
<?php
require(‘要引入的文书名’);

PHP中页面相互调用
为了成功a.php中得以应用到function01.php中定义的函数,我们须要选取以下函数:
require()和require_once()函数。
include()和include_once()函数。
<?php
require(‘要引入的文书名’);

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

$filePath=”a.php”;//通过变量引入
require $filePath;

$filePath=”a.php”;//通过变量引入
require $filePath;

全局变量,作用于主程序。

require ‘要引入的公文名’;
?>

require ‘要引入的文件名’;
?>

$GLOBALS数组与global声明

推行一个函数时,会从一个新栈执行函数里的代码,然后回来到函数调用处,然后继续执行上边的代码。

实施一个函数时,会从一个新栈执行函数里的代码,然后重返到函数调用处,然后继续执行上面的代码。

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

require_once的优点:
前者碰着即包蕴文件,后者会判定是还是不是已经包罗了该公文,倘诺含有过来则不再包括。一可以节省资源,二方可幸免双重定义的荒唐。

require_once的优点:
前者遇到即包罗文件,后者会判定是不是已经包蕴了该公文,假如含有过来则不再包罗。一可以省去资源,二足以防止双重定义的谬误。

function
myfunc(){

php第十一天,语法结构。include和include_once
都足以把一个页面包罗到另一个页面,用法同上

include和include_once
都足以把一个页面包蕴到另一个页面,用法同上

global
$PHP_SELF;

require和include区别
include遭遇错误会继续执行,require会终止执行
引进应用require_once,寻常位于php页面最前方

require和include区别
include遇到错误会继续执行,require会终止执行
推荐应用require_once,经常位于php页面最前边

echo
$PHP_SELF;

哪些领会函数的调用进度
根据函数执行的平整,只要一看到函数即刻开辟新栈,各种栈之间的变量是并行独立的(空间互相独立)。

何以领悟函数的调用进程
绳趋尺步函数执行的规则,只要一看到函数立即开辟新栈,各样栈之间的变量是互相独立的(空间相互独立)。

}

函数参数和变量功效域:

函数参数和变量成效域:

myfunc();

1.函数的参数列表可以有三个参数
2.参数列表数据类型可以是七个类型,PHP接济的任意档次
3.函数的命名跟自定义变量一样,不过不区分轻重缓急写
4.一个自定义函数中定义的变量是有的的,函数外不奏效
5.选用global全局变量的时候,可使用在函数外的变量
$a=12;
function abc3(){

1.函数的参数列表可以有七个参数
2.参数列表数据类型可以是五个品类,PHP帮忙的任性档次
3.函数的命名跟自定义变量一样,可是不区分轻重缓急写
4.一个自定义函数中定义的变量是一对的,函数外不奏效
5.施用global全局变量的时候,可使用在函数外的变量
$a=12;
function abc3(){

专注:PHP函数是不区分轻重缓急写的

global $a;//要在abc3()中应用外层$a
$a+=45;

global $a;//要在abc3()中运用外层$a
$a+=45;

静态变量:

}
abc3();
echo $a;
6.为了防范全局变量的杂乱,可以使用unset($var)删除一个变量
例:$a=12;
function abc($a){

}
abc3();
echo $a;
6.为了防止万一全局变量的繁杂,可以选取unset($var)删除一个变量
例:$a=12;
function abc($a){

static
$mystr;

unset($a);//表示不再abc函数范围内,不选用$a,后边重新定义。
$a=45;
}
abc($a);
echo $a;

unset($a);//表示不再abc函数范围内,不应用$a,前面重新定义。
$a=45;
}
abc($a);
echo $a;

$mystr=”hello”;

7.函数的默许值难点
可以给某些参数赋一个默许值
function abc($b,$a=2){

7.函数的默许值难点
可以给一点参数赋一个默许值
function abc($b,$a=2){

echo
$mystr;

$res=$a+$b;
return $res;
}
$e=70;
echo abc($e).’||’;//72,$a默认为2
acho abc($e,90);//160
$f=80;
echo abc($e,$f);
8.PHP默许是值传递,固然要求地方传递,
function abc(&$b){//加地址符

$res=$a+$b;
return $res;
}
$e=70;
echo abc($e).’||’;//72,$a默认为2
acho abc($e,90);//160
$f=80;
echo abc($e,$f);
8.PHP默认是值传递,假使须求地方传递,
function abc(&$b){//加地址符

变量的变量:

$b=314;
}
abc($a);//$a的地方指向$b的地址
echo $a;//314位运算

$b=314;
}
abc($a);//$a的地方指向$b的地方
echo $a;//314位运算

a=”hello”;

二进制:逢二进一,使用二进制唯有0和1八个数,易于电子方式贯彻,同时,通过0和1的组成,可以表示其他一个数。
1.二进制的最高位是标志位,0表示正数,1表示负数
2.正数的原码、反码和补码都无异
用二进制表示一个数,那几个码就是源码
1…….>原码 00000000 00000000 00000000 00000001
负数的反码:原码符号位不变,其余为取反
-1……>原码 10000000 00000000 00000000 00000001
-1……>反码 11111111 11111111 11111111 11111110
负数的补码:它的反码加1
-1……>补码 11111111 11111111 11111111 11111111
0的反码、补码都是0
PHP没有无符号数,只假若数,最高位就是符号
在统计机运算的时候,都是以补码的不二法门来统计的
无论是是正数仍然负数,都要被转化成补码,然后举办统计

二进制:逢二进一,使用二进制唯有0和1五个数,易于电子格局贯彻,同时,通过0和1的整合,可以表示其他一个数。
1.二进制的最高位是标志位,0表示正数,1表示负数
2.正数的原码、反码和补码都如出一辙
用二进制表示一个数,这些码就是源码
1…….>原码 00000000 00000000 00000000 00000001
负数的反码:原码符号位不变,其余为取反
-1……>原码 10000000 00000000 00000000 00000001
-1……>反码 11111111 11111111 11111111 11111110
负数的补码:它的反码加1
-1……>补码 11111111 11111111 11111111 11111111
0的反码、补码都是0
PHP没有无符号数,只若是数,最高位就是标志
在电脑运算的时候,都是以补码的法门来测算的
无论是正数仍然负数,都要被转化成补码,然后开展测算

$$a=”world”;

位运算符
$a & $b And(按位与) 将把$a和$b中都为1的位设为1.
$a | $b Or(按位或) 将把$a或者$b中为1的位设为1.
$a ^ $b Xor (按位异或) 将把$a和$b中分歧的位设为1.
~$a Nor (按位取反) 将把$a中为0的位设为1,反之亦然.
$a << $b shift left
将把$a中的位向左移动$b次(每一遍活动都意味乘以2).
$a >> $b shift right
将把$a中的位向右移动$b次(每一趟运动都意味除以2).
眼前多个叫位运算,前面八个是运动运算
~2=?
1.求出2的补码 00000000 00000000 00000010
2.取反 11111111 11111111 11111101(补码)-》原码
11111111 11111111 11111100 //补码减一得到反码
10000000 00000000 00000011 //-3
所以, ~2=-3
位移运算规则
算术右移:低位溢出,符号位不变,并用符号位补溢出的要职
算术左移:符号位不变,低位补0
$a=1>>2;
1.找到1的补码:00000000 00000000 000000000 00000001
00000000 00000000 000000000 00000000
$a=0;
$b=-1>>2;
1.找到-1的补码:10000000 00000000 00000000 00000001
11111111 11111111 11111111 11111110
11111111 11111111 11111111 11111111
2.算术右移两位 11111111 11111111 11111111 11111111
结果补码–原码 、
1111111 11111111 11111111 11111110(减一变反码)
10000000 00000000 000000000 00000001(原码)//-1
-1>>2=-1;

位运算符
$a & $b And(按位与) 将把$a和$b中都为1的位设为1.
$a | $b Or(按位或) 将把$a或者$b中为1的位设为1.
$a ^ $b Xor (按位异或) 将把$a和$b中区其余位设为1.
~$a Nor (按位取反) 将把$a中为0的位设为1,反之亦然.
$a << $b shift left
将把$a中的位向左移动$b次(每一回活动都意味着乘以2).
$a >> $b shift right
将把$a中的位向右移动$b次(每一回活动都意味着除以2).
前方多少个叫位运算,后边几个是运动运算
~2=?
1.求出2的补码 00000000 00000000 00000010
2.取反 11111111 11111111 11111101(补码)-》原码
11111111 11111111 11111100 //补码减一取得反码
10000000 00000000 00000011 //-3
所以, ~2=-3
位移运算规则
算术右移:低位溢出,符号位不变,并用符号位补溢出的要职
算术左移:符号位不变,低位补0
$a=1>>2;
1.找到1的补码:00000000 00000000 000000000 00000001
00000000 00000000 000000000 00000000
$a=0;
$b=-1>>2;
1.找到-1的补码:10000000 00000000 00000000 00000001
11111111 11111111 11111111 11111110
11111111 11111111 11111111 11111111
2.算术右移两位 11111111 11111111 11111111 11111111
结果补码–原码 、
1111111 11111111 11111111 11111110(减一变反码)
10000000 00000000 000000000 00000001(原码)//-1
-1>>2=-1;

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

$c=1<<2;
1的补码:00000000 00000000 00000000 00000001
左移两位 00000000 00000000 00000000 00000100 //4

$c=1<<2;
1的补码:00000000 00000000 00000000 00000001
左移两位 00000000 00000000 00000000 00000100 //4

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

数组、排序、查找
为了知道数组中总共有多少个元素,可以行使系统函数count:count(数组名);

数组、排序、查找
为了通晓数组中总共有多少个因素,能够应用系统函数count:count(数组名);

隐式类型转换

数组创制
数组是必不可缺字和值的聚集

数组创设
数组是首要字和值的聚众

$a[0]=123;

.创建数组一
1.$arr[0]=123;
$arr[1]=90;
$arr[2]=8;
数组在内存中的存在形式:每个数组元素分配一个空间,$arr相当于楼层,每个元素代表一个房间
在PHP数组中,每个元素值的数据类型不限量
.成立数组二
$数组名=array(值1,值2,值3…);

.创立数组一
1.$arr[0]=123;
$arr[1]=90;
$arr[2]=8;
数组在内存中的存在格局:每个数组元素分配一个空间,$arr相当于楼层,每个元素代表一个屋子
在PHP数组中,每个元素值的数据类型不限量
.创造数组二
$数组名=array(值1,值2,值3…);

$a[1]=234;

下标又叫关键字,可以是数字,也可以团结指定(默许情况下,大家的要素的下标是从0初始给您号码)
$arr[‘logo’]=”beijing”;
#arr[‘php’]=123;
或者
$arr=array<“logo”=>”北京”,”php”=>123>

下标又叫关键字,可以是数字,也足以自己指定(默许情状下,我们的因素的下标是从0先导给您号码)
$arr[‘logo’]=”beijing”;
#arr[‘php’]=123;
或者
$arr=array<“logo”=>”北京”,”php”=>123>

echo
$a;    //显示Array

借使大家成立一个数组时,没有给某个元素指定下标,PHP就会自动用当下最大的百般下标值,加上1当作该因素的下标(关键字)
俺们平时可以选用print_r来突显那一个数组情况
var_dump($arr)可以更进一步详实的体现数组的新闻
一维数组应用陷阱
$arr[bar]=’hello world’;那样使用危险,不要这么用
PHP数组相关函数
count函数:由于总计数组元素有多少个 count(数组名)。
is_array函数
print_r()和var_dump()函数。
explode函数:拆分字符串$arr=explode(” “,$str);//用空格拆分字符串$str.

若果我们创立一个数组时,没有给某个元素指定下标,PHP就会自行用当下最大的卓绝下标值,加上1看成该因素的下标(关键字)
大家一般可以使用print_r来突显那个数组意况
var_dump($arr)可以更进一步详实的显得数组的音讯
一维数组应用陷阱
$arr[bar]=’hello world’;那样使用危险,不要这么用
PHP数组相关函数
count函数:由于计算数组元素有几个 count(数组名)。
is_array函数
print_r()和var_dump()函数。
explode函数:拆分字符串$arr=explode(” “,$str);//用空格拆分字符串$str.

$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 语法注释

?>

发表评论

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

网站地图xml地图