PHP开发基础知识

摘要:
我的第一个php页面<你好世界所有用户定义的函数、类和关键字(如if、else、echo等)都是合法的echoECHOEcho,但对变量定义敏感;回声“Mycaris”如下$color。“<echo”Myhouseis“.$COLOR.”<只有第一句话将输出变量的值;PHP变量名可以很短,例如x;PHP变量规则1。变量以$符号开头;

PHP的学习

PHP脚本以<?php 开始 ?>结束

<?php

//此处写代码

? >

php默认文件扩展名.php

php文件通常包含HTML标签以及一些PHP脚本代码

“echo”是php输出函数,下面是一个简单例子

<!DOCTYPE html>

<html>

<body>

 

<h1>我的第一张php页面</h1>

<?php

echo “hello world!”;

? >

</body>

</html>

PHP大小写敏感:在PHP中,所有用户定义的函数、类和关键词(例如if、else、echo等)以下三种写法都是合法的

echo

ECHO

EcHo

但是在对变量定义时时敏感的,如下

echo "My car is " . $color . "<br>";

echo "My house is " . $COLOR . "<br>”; 

 echo "My boat is " . $coLOR . "<br>";

只有第一句会输出变量的值。

变量是存储信息的容器

$x = 5;

$y = 6;

$z = $x+$y;

类似于代数运算:

x = 5;

y = 6;

z = x + y;

PHP变量的名称可以取得很短如x,y;也可以取得很长如carname、peoperpassword。

PHP变量的规则

1.变量以$符号开头,其后是变量的名称

2.变量名称必须以字母或下划线开头

3.变量名称不能以数字开头

4.变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)

5.变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

PHP变量名称对大小写敏感

PHP没有为其创建的命令,会在第一次赋值时被创建(无需告诉类型,php会自动转化正确的数据类型)

local和global作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

提示:若果想要输出函数内部的变量,那么请在函数内部变量前加global,另一方面如果函数内部想访问全局变量可以使用$GLOBALS[index]数组,下标存有变量名:如下示:

<?php

$x=5;

$y=10;

function myTest() {

   $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];

myTest();

echo $y;

?>

static关键词

函数执行后,会删除所有的变量,如果想保留变量的值需要在第一次声明变量时使用static关键词。

注意:

html中可以嵌套PHP脚本,php中的echo输出语句也可以包含html标记(试验一下,如果php里嵌套html的话,在thinkPHP框架中的Runtime中的Cache中会定位到错误的位置)

php中的输出语句echo print

echo可以输出一个以上的字符串

print只能输出一个字符串,并始终返回1

提示:echo的效率要比print好

数据类型:

php字符串:字符串是字符序列,可以使用单引号或者双引号:如:”hello world!” ‘hello world’ 具有同样的效果。

php整数:不能含有空格、逗号、小数点。整数正负均可,十进制、十六进制(前缀是0x)或八进制(前缀0)。

var_dump()会返回数据的类型和值,如:$X= 3690 ; var_dump($x); 会返回int(3690).

php浮点数:浮点数是由小数和指针形式的数字。

php逻辑:逻辑是true或false,如$x = true;$y = false.

php数组:数组可以在一个变量中存储多个值,用var_dump()返回变量的数据类型和值,如:

<?php 

$cars=array("Volvo","BMW","SAAB");

var_dump($cars);

?>

返回的数据是:array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB” }

简单解释一下:array(3)顾名思义是指这个数组有三个值,【0】=>string(5)”Volvo” 是指数组下标中为0的值是个字符串类型,数组长度是5,值是Volvo。

php对象:对象是存储数据和有关如何处理数据的信息的数据类型,在php中必须明确的声明对象。声明对象的类使用class关键词。类中包含属性和方法的结构。然后在对象类中定义数据类型,然后在该类的实例中使用此数据类型。

php NULL值:NULL表示变量无值,NULL值标示变量是否为空,也用于区分空字符串和空值数据库,可以把值设置成NULL,将变量清空。如:

<?php

$x="Hello world!";

$x=null;

var_dump($x);

?>

返回的结果就是:NULL

 

PHP字符串函数

php strlen()函数:返回字符串的长度,以字符计,如:

echo strlen(“hello world!”);返回的结构就是12.

 

php strpos()函数:用来检索字符串内指定的字符或文本。若找到则返回首字符的位置,否则返回FALSE,如:

echo(“hello world!”,“world”);输出的结果就是6。因为字符串的首字符位置是0.

 

php常量

常量是单个值得标示符,在脚本中无法改变其值,且常量名称前是没有$符号(与变量不同,常量在整个脚本中是自动全局的)

常量的定义:设置常量使用define()函数,使用三个参数:

1.首个参数定义常量的名称;

2.第二个参数定义常量的值;

3.可选的第三个参数规定常量名是否对大小写敏感。默认是fales。

如:敏感:define(“GREETING”,”Welcome to W3School.com.cn!”);echo GREETING;

不敏感:define(“GREETING”,”Welcome to W3School.com.cn!”,true); echo greeting;

 

php运算符

php算数运算符:

直接实例搞起来,如:

<?php

$x = 11;

$y = 6;

echo($x + $y);//进行+运算

echo($x -  $y);//进行-运算

echo($x * $y);//进行*运算

echo($x / $y);//进行除法运算

echo($x % $y);//进行曲模运算

?>

php赋值运算符

php中的赋值运算符是=,认为右侧值赋值给左侧值。

 

php字符串运算符

运算符 . 串接;

运算符 .= 串接赋值。

如:

$a = “hello”;

$b = $a.”world!”;

echo $b//会输出hello world!

 

$x = “helo”;

$x .= “world!”;

echo $x//会输出hello world!

 

PHP递增/递减运算符

++$x 表示:加1后返回

$x++ 表示:返回后加1

--$x 表示:减1后返回

$x— 表示:返回后减1

 

php比较运算符

== 等于

===全等 类型相同

!= 不等于

<>不等于

!== 不全等 类型不相同返回true

> 大于

<  小于

>= 大于或等于

<= 小于或等于

如:

$x = 100;

$y = “100”;

var_dump($x === $y) 返回bool(false) 因为类型不同

var_dump($s !== $y) 返回bool(true) 因为类型不同

 

php逻辑运算符

and  or xor异或

&& 与

|| 或

! 非

 

PHP条件语句

使用条件语句的目的是根据条件选择执行的任务。

1.if 语句

2.if…else语句

3.if…elseif…else语句

4.switch语句

switch语句:有选择的执行代码块,避免冗余的if...elseif...else代码块

 

PHP while循环

一块代码需要重复执行时使用

1.while

2.do…while 先执行一次,再判断是否循环执行

3.for

4.foreach 遍历数组中的每个元素并循环代码块’(只适用于数组)

如:

<?php

$colors = array(“red”,”green”,”blue”);

foreach($colors as $value){

echo “$value”<br>

}

?>

PHP函数

php中的内建函数超过1000个,用户也可以自建函数

函数可以在程序中重复使用的代码块,页面加载是函数不会立即执行,只有在调用的时候才会执行。

提示:函数名对大小写不敏感,函数声明以function开头。函数名应该能反映出函数要执行的任务。

函数中的参数:在括号中定义,如果定义多个可以用逗号隔开

默认参数:如果没有传递参数则使用默认值。

 

PHP数组

数组能够在单个变量中保存一个或多个值。

php中使用 array()函数创建数组

1.索引数组:带有数字索引的数组

2.关联数组:带有指定建的数组

3.多维数组:包含一个或多个的数组的数组

count()函数用来获取数组的长度,如:count($colors);

关联数组:

关联数组是使用分配给数组的指定键的数组,两种创建方式:

$age = array(“tom”=>”20”,”tim” = >”18”,”jock” = >”22”);

或者:

$age[’tom’] = “20”;

$age[’tim’] = “18”;

$age[‘jock’] = 22;

遍历关联数组:

<?php

$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

 

foreach($age as $x=>$x_value) {

   echo "Key=" . $x . ", Value=" . $x_value;

   echo "<br>";

}

?>

输出结果:

Key=Bill, Value=35

Key=Steve, Value=37

Key=Peter, Value=43

php数组排序函数

sort():以升序对数组排序

rsort():降序对数组排序

asort():根据值,以升序对关联数组排序

ksort():根据键,以升序对关联数组排序

arsort():根据值降序排序

krsort():根据键降序排序

如:根据键值进行升序排序

<?php

$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

ksort($age);

 

foreach($age as $x=>$x_value)

    {

    echo "Key=" . $x . ", Value=" . $x_value;

    echo "<br>";

    }

?>

输出结果是:

Key=Bill, Value=35

Key=Peter, Value=43

Key=Steve, Value=37

PHP全局变量-超全局变量

意味在脚本的全部作用域都可以使用

超全局变量有:

$GLOBALS

$_SERVER

$_REQUEST

$_POST

$_GET

$_FILES

$_ENV

$_COOKIE

$_SESSION

$GLOBALS:引用全局作用域可用的全部变量(php脚本任意位置均可访问$GLOBALS[index]数组存储所有的全局变量)

<?php 

$x = 30;

$y = 65; 

 

function addition() {

   $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];

}

 

addition();

echo $z;

?>

输出95.

$_SERVER:这种超全局变量保存关于报头、路径、和脚本位置的信息。

<?php 

echo $_SERVER['PHP_SELF'];

echo "<br>";

echo $_SERVER['SERVER_NAME'];

echo "<br>";

echo $_SERVER['HTTP_HOST'];

echo "<br>";

echo $_SERVER['HTTP_REFERER'];

echo "<br>";

echo $_SERVER['HTTP_USER_AGENT'];

echo "<br>";

echo $_SERVER['SCRIPT_NAME'];

?>

输出:

/example/php/demo_php_global_server.php

www.w3school.com.cn

www.w3school.com.cn

http://www.w3school.com.cn/tiy/s.asp?f=demo_php_global_server

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36

/example/php/demo_php_global_server.php

$_REQUEST:用于收集HTML表单提交的数据,下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时, 表单数据将发送到 <form> 标签的 action 属性中指定的脚本文件。在这个例子中,我们指定文件本身来处理表单数据。如果您需要使用其他的 PHP 文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量 $_REQUEST 来收集 input 字段的值:

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

Name: <input type="text" name="fname">

<input type="submit">

</form>

 

<?php 

$name = $_REQUEST['fname']; 

echo $name; 

?>

$_POST:PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。

下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到 <form> 标签的 action 属性中指定的文件。在本例中,我们指定文件本身来处理表单数据。如果您希望使用另一个 PHP 页面来处理表单数据,请用更改为您选择的文件名。然后,我们可以使用超全局变量 $_POST 来收集输入字段的值:

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

Name: <input type="text" name="fname">

<input type="submit">

</form>

 

<?php 

$name = $_POST['fname']; 

echo $name; 

?>

$_GET:$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。

$_GET 也可以收集 URL 中的发送的数据。

假设我们有一张页面含有带参数的超链接:

<a href="http://t.zoukankan.com/demo/test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a>

免责声明:文章转载自《PHP开发基础知识》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇attributeError: 'NoneType' object has no attribute 'shape' 报错ELK 架构之 Logstash 和 Filebeat 安装配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SSIS 学习(4):变量和表达式【转】

变量,作为程序员的我们,是一个多么熟悉的概念,从开始学习编程的第一天起,就要了解什么是变量?如何定义一个变量?变量的使用范围等。现在还有必 要在这里大费口舌来讨论“变量”吗?不错,我们今天谈的变量,也脱离不了这个范畴:如何定义一个变量?如何使用变量?变量的使用范围等。但是在ETL的发 展过程中,从以前Sql Server 97、Sql Server 200...

Xamarin.Forms学习系列之Syncfusion 制作图形报表

Syncfusion是一家微软生态下的第三方组件/控件供应商,除了用于HTML5和JavaScript的控件外,他们产品还涉及如下领域: WEB ASP.NET MVC ASP.NET WebForms HTML5/JavaScript LightSwitch Silverlight MOBILE iOS Android Windows Phone...

Rhino -- 基于java的javascript实现

javascript引擎大家比较熟悉的应该是当前比较火的Chrome V8引擎。以快速闻名。v8基于c++开发。这里就不多阐述了。另外一个是 基于java的Rhino引擎,这个想来大家不是很了解。下面来简单介绍一下。 Rhino简介 (简介这部分是抄的) Rhino 是一种使用 Java 语言编写的 JavaScript 的开源实现,原先由Mozill...

pdfcrop不能使用

最近,用到了pdfcrop,用来去除pdf中空白的边。 但是使用pdfcrop --margins 0  *.pdf 后,给出了错误: Error: pdfcrop cannot call ghostscript <gswin32c> 但是我已经安装了CTEX,里面已经包含Ghostscript,所以就不知道什么错误。在网上针对这个问题找了...

nginx和fpm的进程数配置和502,504错误

 502 和 php-fpm.conf 1.php-cgi进程数不够用。php执行时间长,导致没有空闲进程处理新请求。 2.php-cgi进程死掉。php-fpm超时时间短,当前进程执行超时关闭连接。 实例: 1.request_terminate_timeout引起的资源问题 request_terminate_timeout默认值为 0 秒,也就是说,...

css div上下左右居中

相信大家都会遇到这样的问题,要求一个块上下左右居中,在这里我总结了几个好用的方法 1.已知要居中的块width height  假设  content 要在f里上下左右居中 <div class="f"><div class="content"></div></div> <style> .f{  ...