您的位置:首页 > 编程语言 > PHP开发

PHP自学,第一阶段,基础学习

2014-07-23 18:32 218 查看
环境搭建OS X系统上

Win7运行OS X虚拟机

在 OS X上安装MAMP运行环境

IDE使用 Netbeans PHP版本开发

数据库使用mysql

自学资料使用:PHP从入门到精通.pdf

第一阶段书写学习代码,外加注释详解

<!DOCTYPE html>

<!--

To change this license header, choose License Headers in Project Properties.

To change this template file, choose Tools | Templates

and open the template in the editor.

-->

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<body>

<!--<?php

$a = print("I 老虎 U??"); // 这个是允许的

echo $a; // $a的值 是1

?>-->

<!--<?php

echo "欢迎进入PHP的世界!!";

?>-->

<!--<?php

echo "恭喜您走上PHPdeian编程之路!";

?>-->

<!--<?php

echo "<table border='1'><tr><td>我是胖鱼做出来的</td></tr></table>";

?>-->

<!--多种使用PHP的方法-->

<!--<script language="php">

echo "这是脚本使用PHP";

</script>

<?echo '这是简短风格de标记';?>

<%echo '这是ASP风格的标记';%>-->

<?php

//注释方式

//echo "<table border='1'><tr><td>我是胖鱼做出来的</td></tr></table>";

/*

* 多行注释

*/

#Shell脚本方式注释

?>

<!--<?php

//php中的if使用

$boo = true;

if ($boo == false)

echo '变量$boo为真';

else

echo '变量$boo为假';

?>-->

<!--<?php

//定义字符串时,单引号和双引号是不一样的

//双引号中所包含的变量会自动被替换成实际数值,而单引号中包含的变量则按普通字符串输出

//字符串中的特殊字符还是要使用\来转义,和JAVA相同

$i = '只会看到一遍'; //声明一个字符串变量

echo "$i"; //用双引号输出

echo "<p>"; //输出段标记

echo "$i"; //用单引号输出

?>-->

<!--<?php

$str1 = 1234567890; //声明一个十进制的整数

$str2 = 0 * 1234567890; //声明一个十六进制的整数

$str3 = 01234567890; //声明一个八进制的整数

$str4 = 01234567; //声明另一个八进制的整数

echo '数字1234567890不同进制的输出结果:<p>';

echo '十进制的结果是:' . $str1 . '<br>'; //输出一个十进制整数

echo '十六进制的结果是:' . $str2 . '<br>'; //输出十六进制整数

echo '八进制的结果:';

if ($str3 == $str4) { //判断$str3和$str4的关系

echo '$str3=$str4=' . $str3; //如果相等,输出变量值

} else {

echo '$str3!=str4'; //如果不相等,输出"$str3!=$str4"

}

?>-->

<!--

<?php

echo '圆周率的3种书写方法:';

echo '第一种:pi()=' . pi() . ''; //调用pi函数输出圆周率

echo '第二种:3.14159265359=' . 3.14159265359 . ''; //传统书写格式的浮点数

echo '第三种:3.14159265359E-11=' . 314159265359E-11 . ''; //科学计数法格式的浮点数

?>-->

<!--<?php

//数组的用法

$arr1 = array('This', 'is', 'a', 'example');

$arr2 = array(0 => 'php', 1 => 'is', 'the' => 'the', 'str' => 'best');

$arr3[0] = 'tempname';

echo 'arr1=' . $arr1[0] . '<p>';

echo 'arr2=' . $arr2['the'] . '<p>';

echo 'arr3=' . $arr3[0];

?>-->

<!--<?php

/*

* is_null()函数是判断变量是否为null,该函数返回一个boolean型,如果

* 变量为null,则返回true,否则返回false,unset()函数用来销毁指定的变量

*/

echo "变量(\$string1)直接赋值为null:";

$string1 = null; //变量$string1被赋空值

$string3 = "str"; //变量$string3被赋值str

if (is_null($string1)) { //判断$string1是否为空

echo "string1=null";

}

echo "<p>变量(\$string2)未被赋值:";

if (is_null($string2)) { //判断$string3是否为空

echo "string2=null";

}

echo "<p>被unset()函数处理过的变量(\$string3):";

unset($string3); //释放$string3

if (is_null($string3)) { //判断$string3是否为空

echo"string3=null";

}

/* unset() 销毁指定的变量。

unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

*

*/

?>-->

<!--<?php

//类型强制转换

/*

* (boolean) 转换成布尔类型 (boolean)$num;

* (string) 转换成字符型 (string)$boo;

* (integer) 转换成整型 (integer)$boo;

* (float) 转换成浮点型 (float)$boo;

* (array) 转换成数组 (array)$boo;

* (object) 转换成对象 (object)$boo;

*/

/*

* PHP中的类型转换和C语言一样,非常简单,只需要在变量前加上用括号起来的类型名称即可。另一种方法还可以通过settype()函数来完成,该函数可以将指定的变量转换成指定的数据类型。

在进行类型转换的过程中应注意以下几点:

转换成boolean型时,null,0和未赋值的变量或数组会被转换为false,其他的为真;

转换成整形时,布尔型的false转换为0,true转换为1,浮点型的小数部分被舍去,字符型如果以数字开头就截取到非数字位,否则输出0.

当字符串转换为整形或浮点型时,如果字符串是以数字开头的,就会先把数字部分转换为整形,再舍去后面的字符串;如果数字中含有小数点,则会取到小数点前一位。

*/

$num = '3.1415926r*r'; //声明一个字符串变量

echo '使用(integer)操作符转换变量$num类型:';

echo (integer) $num; //使用integer转换类型

echo '<p>';

echo '输出变量$num的值:' . $num; //输出原始变量$num

echo '<p>';

echo '使用settype函数转换变量$num类型:';

echo settype($num, 'integer'); //使用settype函数转换类型

echo '<p>';

echo '输出变量$num的值:' . $num; //输出原始变量$num

/*

* 使用integer操作符能直接输出转换后的变量类型。并且原变量不发生任何变换。

* 而使用settype()函数返回的是1,也就是true,而原变量被改变了。

*/

?>-->

<!--<?php

/*

* 检测类型

* 函数 检测类型 举例

* is_bool 检查变量是否是布尔类型 is_bool(true),is_bool(false)

* is_string 检查变量是否是字符串类型 is_string('string'),is_string(1234)

* is_float/is_double 检查变量是否是浮点类型 is_float(3.1415),is_float('3.1415')

* is_integer/is_int 检查变量是否是整形 is_integer(34),is_integer('34')

* is_null 检查变量是否是null is_null(null)

* is_array 检查变量是否是数组类型 is_array($arr)

* is_object 检查变量是否是一个对象类型 is_object($obj)

* is_numeric 检查变量是否是数字或由数字组成的字符串 is_numeric('5'),is_numeric('bcd110')

*/

//使用is_numeric()函数

$boo = "043112345678";

if (is_numeric($boo))

echo "Yes,the \$boo a phone number : $boo !";

else

echo "Sorry,This is an error!";

?>-->

<!--<?php

/*

* 声明和使用常量

* 常量可以理解为值不变的量。常量值被定义后,在脚本的其他任何地方都不能改变。

* 一个常量由英文字母,下划线和数字组成,但数字不能作为首字母出现。

* 使用define()函数来定义常量,该函数的语法格式为:

* define(string constant_name,mixed value,case_sensitive=true)

* 参数含义

* constant_name 必选参数,常量名称,即标示符

* value 必选参数,常量的值

* case_sensitive 可选参数,指定是否大小写敏感,设定为true,表示不敏感

*

*

* 获取常量的值由两种方法:一种是使用常量名直接获取值 ;另一种是使用constant()函数,

* constant()函数和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,

* 在使用上咬灵活方便得多。函数的语法格式为:

*

* mixed constant(string constr_name)

*

* 参数const_name为要获取常量的名称,也可以为储存常量名的变量。如果成功则返回常量的值,

* 否则提示错误信息常量没有被定义

* 要判断一个常量是否已经定义,可以使用defined()函数。函数的语法格式为:

*

* bool defined(string constant_name);

*

* 参数constant_name为要获取常量的名称,成功则返回true,否则返回false.

*

*/

define("MESSAGE", "能好看到一次");

echo MESSAGE . "<br>"; //输出常量MESSAGE

echo Message . "<br>"; //输出“Message”,表示没有该变量

define("COUNT", "能看到多次", true);

echo COUNT . "<br>"; //输出常量COUNT

echo Count . "<br>"; //输出常量COUNT,因为设定大小写不敏感

$name = "count";

echo constant($name) . "<br>"; //输出常量COUNT

echo (defined("MESSAGE")) . "<br>"; //如果常量被定义,则返回TRUE,使用echo输出显示1

?>-->

<!--<?php

/*

* 预定义常量

* PHP中可以使用预定义常量获取PHP中的信息。常用的预定义常量如表

*

* 常量名 功能

* __FILE__ 默认常量,PHP程序文件名

* __LINE__ 默认常量,PHP程序行数

* PHP_VERSION 内建常量,PHP程序的版本,如3.0.8_dev

* PHP_OS 内建常量,执行PHP解析器的操作系统名称,如Windows

* TRUE 该常量是一个真值(true)

* FALSE 该常量是一个假植(false)

* NULL 一个NULL值

* E_ERROR 该常量指到最近的错误处

* E_WARNING 该常量指到最近的警告处

* E_PARSE 该常量指到解析语法有潜在问题处

* E_NOTICE 该常量为发生不寻常出的提示但不一定是错误处

*

*

* 注意:__FILE__和__LINE__中的“__”是两条下划线,而不是一条

*

* 说明:

* 表中的以E_开头的预定义常量,是PHP的错误调试部分。如需详细了解,请参考

* error_reporting()函数。

*/

echo "当前文件路径:" . __FILE__; //输出__FILE__常量

echo "<br>当前行数:" . __LINE__; //输出__LINE__常量

echo "<br>当前PHP版本信息:" . PHP_VERSION; //输出PHP版本信息

echo "<br>当前操作系统:" . PHP_OS;

?>-->

<!--<?php

/**

*

* 变量

*/

//变量间的赋值。

$string1 = "spcn"; //声明变量$string1

$string2 = $string1; //使用$string1初始化$string2

$string1 = "zhuding"; //改变变量$string1的值

echo $string2 . "<br>"; //输出变量$string2的值

echo $string1;

//从PHP4开始,PHP引入了“引用赋值”的概念。引用的概念是,用不同的名字

//访问同一个变量内容。当改变其中一个变量的值时,另一个也跟着发生变化

//使用&符号来表示引用

$i = "spcn"; //声明变量$i

$j = & $i; //使用引用赋值,这时$j已经赋值为span

$i = "hello,$i"; //重新给$j赋值

echo "<br>" . $j; //输出变量$j

echo "<br>";

echo $i; //输出变量$i

?>-->

<!--<?php

/*

* 变量作用域

* 变量在使用时,要符合变量的定义规则。变量必须在有效范围内使用,如果变量超出

* 有效范围,则变量也就失去其意义了。变量的作用域如表

*

* 作用域 说明

* 局部变量 在函数的内部定义的变量,其作用域是所在函数

*

* 全局变量 被定义在所有函数以外的变量,其作用域是整个PHP文件,但在用户自定义函数

* 内部是不可用的。如果希望在用户自定义函数内部使用全局变量,则要使用global

* 关键字声明

*

* 静态变量 能够在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用

* 原来的值。而一般变量是在函数调用结束后,其存储的数据值将被清除,所占的内存

* 空间被释放。使用静态变量时,先要用关键字static来声明变量,吧关键字static

* 放在腰定义的变量之前

*

* 在函数内部定义的变量,其作用域为所在函数,如果在函数外赋值,将被认为是完全不同

* 的另一个变量。再退出声明变量的函数时,该变量及相应的值就会被清除。

*

*/

$example = "在。。。。。函数外";

function example() {

$example = "。。。。。在函数内。。。。。";

echo "在函数内输出的内容是:$example.<br>";

}

example();

echo "在函数外输出的内容是:$example.<br>";

//------静态变量在很多地方都能用到。例如,在博客中使用静态变量记录游览者得人数,每一次

//用户访问和离开时,都能够保留目前浏览者的人数。在聊天室也可以使用静态变量来记录用户的聊天内容

//使用静态变量和普通变量同时输出一个数据

function zdy() {

static $message = 0; //初始化静态变量

$message+=1; //静态变量加1

echo $message . ""; //输出静态变量

}

function zdy1() {

$message = 0; //声明函数内部变量(局部变量)

$message+=1; //局部变量加1

echo $message . ""; //输出局部变量

}

for ($i = 0; $i < 10; $i++)

zdy(); //输出1~10

echo"<br>";

for ($i = 0; $i < 10; $i++)

zdy1(); //输出10个1;

echo"<br>";

/* er

*

* 自定义函数zdy()是输出从1~10共10个数字,而zdy1()函数则输出的是10个1.因为

* 自定义函数zdy()含有静态变量,而函数zdy1()是一个普通变量。初始化都为0,再分别使用

* for循环调用两个函数,结果是静态变量的函数zdy()再被调用后保留了$message中的值,

* 而静态变量的初始化只是在第一次遇到时被执行,以后就不在对其进行初始化操作了,将会

* 略过第三行代码不执行;而普通变量的函数zdy1()在被调用后,其变量$message失去了原来的

* 值,重新被初始化为0.

*

*

*

* 全局变量可以在程序中的任何地方访问,但是在用户自定义函数内部是不可用的。想在用户自定义

* 函数内部使用全局变量,要使用global关键字声明。

*/

$zy = "不会看到"; //声明全局变量$zy

$zyy = "会看到"; //声明全局变量$zyy

function lxt() {

echo $zy . "<br>"; //$zy不能被调用,没有输出

global $zyy; //利用关键字global在函数内部定义全局变量

//字符串链接. 同等于JAVA中的+

$zyy = $zyy . "安鹏";

echo $zyy . "<br>"; //此处调用$zyy

}

lxt();

?>-->

<!--<?php

/*

* 可变变量

* 可变变量是一种独特的变量,它允许动态改变一个变量名称。其工作原理是该变量的名称

* 由另外一个变量的值来确定,实现工程就是在变量的前面再多加一个美元符号“$”;

*/

$change_name = "trans";

$trans = "You can see me!";

echo $change_name;

echo "<br>";

echo $$change_name;

?>-->

<!--<?php

/*

* PHP预定义变量

常用的预定义变量如下表:

$_SERVER[‘SERVER_ADDR’] 当前运行脚本所在服务器的IP地址

$_SERVER[‘SERVER_NAME’] 当前运行脚本所在服务器的名称

$_SERVER[‘REQUEST_METHOD’] 访问页面时的请求方法。如GET、POST、HEAD、PUT等,如果请求的方式是HTAD,PHP脚本将在送出头信息后中止(这意味着在产生任何输出后,不再有输出缓冲)

例:if($_SERVER['REQUEST_METHOD']== 'POST'){ //判断是否是提交操作

程序体,如将提交的信息添加到数据库中等等一系列的操作。

}

$_SERVER[‘REMOTE_ADDR’] 正在浏览当前页面用户的IP地址。

$_SERVER[‘REMOTE_HOST’] 正在浏览当前页面用户的主机名。反向域名解析基于该用户的remote_addr

$_SERVER[‘REMOTE_PORT’] 用户连接服务器时所使用的端口

$_SERVER[‘SCRIPT_FILENAME’] 当前执行脚本的绝对路径。注意,如果脚本在CLI中被执行,作为相对路径,如file.php或者../file.php,$_SERVER[‘SCRIPT_FILENAME’]将包含用户指定的相对路径。

$_SERVER[‘SERVER_PORT’] 服务器所使用的端口,默认为80。如果使用ssl安全连接,则这个值为用户设置的端口

$_SERVER[‘SERVER_SIGNATURE’] 包含服务器版本和虚拟主机名的字符串

$_SERVER[‘DOCUMENT_ROOT’] 当前运行脚本所在的文档根目录,在服务器配置文件中定义。

$_COOKIE 通过httpcookie传递到脚本的信息。这些cookie多数是由执行PHP脚本时,通过setcookie()函数设置的。

$_SESSION 包含与所有会话变量有关的信息。$_SESSION变量主要应用于会话控制和页页之间值的传递。

$_POST 包含通过POST方法传递的参数的相关信息。主要用于获取通过POST方法提交的数据。

$_GET 包含通过GET方法传递的参数的相关信息。主要用于获取通过GET方法提交的数据

$GLOBALS 由所有已定义全局变量组成的数组。变量名就是该数组的索引。它可以称得上是所有超级变量的超级集合。

注意:预定义变量是区分大小写的。

*/

echo $_SERVER['SERVER_ADDR'] . '<br>';

echo $_SERVER['SERVER_NAME'] . '<br>';

echo $_SERVER['REQUEST_METHOD'] . '<br>';

echo $_SERVER['REMOTE_ADDR'] . '<br>';

echo $_SERVER['REMOTE_HOST'] . '<br>';

echo $_SERVER['REMOTE_PORT'] . '<br>';

echo $_SERVER['SCRIPT_FILENAME'] . '<br>';

echo $_SERVER['SERVER_PORT'] . '<br>';

echo $_SERVER['SERVER_SIGNATURE'] . '<br>';

echo $_SERVER['DOCUMENT_ROOT'] . '<br>';

/*

* $_COOKIE,是文件头信息,而文件头是不可显示内容。也就是说,不能在正文中操作$_COOKIE。更通俗地说,在浏览器中查看源码,只要源码不为空,再使用$_COOKIE系统将报错。

解决方法:将$_COOKIE赋值给变量,再对变量进行操作。比如

………………

$user_cookie=$_COOKIE['usercookie']

………………

echo $user_cookie

*/

echo $_COOKIE . "<br>";

?>-->

<!--<?php

/*

* 算数运算符(和Java相同)

*

* 名称 操作符 举例

* 加法运算 + $a+$b

* 减法运算 - $a-$b

* 乘法运算 * $a*$b

* 除法运算 / $a/$b

* 取余运算 % $a%$b

* 递增运算 ++ $a++,++$a

* 递减运算 -- $a--,--$a

*

* 在算术运算符中使用%求余,如果被除数($a)是负数,那么取得的结果也是一个负值。

*/

$a = -100;

$b = 50;

$c = 30;

echo "\$a=" . $a . ",";

echo "\$b=" . $b . ",";

echo "\$c=" . $c . "<p>";

echo "\$a+\$b=" . ($a + $b) . "<br>";

/*

* -

* *

* /

* %

* .

* .

* .

*/

?>-->

<!--<?php

/*

* 字符串运算符只有一个,即英文的句号"."。它将两个字符串链接起来,结合成一个新的字符串。

* 使用过C或JAVA的应该注意,这里的“+”号只用做赋值运算符使用,而不能用作字符串运算符。

*/

$n = "3.1415926r*r";

$m = 1;

$nm = $n . $m;

echo $nm . "<br>";

$mn = $n + $m;

echo $mn . "<br>";

?>-->

<!--<?php

/*

* PHP中的赋值运算符跟JAVA相同

* =

* +=

* -=

* *=

* /=

* .= $a.=b $a=$a.b 将右边的字符加到左边

* %

*/

?>-->

<!--<?php

/*

* 位运算符

* 位逻辑运算符是指对二进制位从低位到高位对齐后进行运算

*

*

* 符号 作用 举例

* & 按位与 $m & $n

* | 按位或 $m | $n

* ^ 按位异或 $m ^ $n

* ~ 按位取反 $m ~ $n

* << 向左移位 $m << $n

* >> 向右移位 $m >> $n

*/

$m = 8;

$n = 12;

$mn = $m & $n;

echo $mn . "<br>";

$mn = $m | $n;

echo $mn . "<br>";

$mn = $m ^ $n;

echo $mn . "<br>";

$mn = ~$m;

echo $mn . "<br>";

?>-->

<!--<?php

/*

* 逻辑运算符

*

* 运算符 举例 结果为真

* &&或and(逻辑与) $m and $n 当$m和$n都为真时

* ||或or(逻辑或) $m||$n 当$m为真或者$n为真时

* xor(逻辑异或) $m xor $n 当$m,$n一真一假时

* !(逻辑非) !$m 当$m为假时

*

* 在逻辑运算符中,逻辑与和逻辑或这两个运算符有4种运算符号(&&,and,||和or)。其中

* 属于同一个逻辑结构的两个运算符号(例如&&和and)之间却有着不同的优先级

*/

$i = true; //声明一个布尔型变量$i,赋值为真

$j = true; //声明一个布尔型变量$j,赋值也为真

$z = false; //声明一个初值为假的布尔变量$z

if ($i or $j and $z) //用or作判断

echo "true"; //如果if表达式为真,输出true

else

echo "false"; //否则输出false

echo "<br>";

if ($i || $j and $z) //用||作判断

echo "true"; //如果表达式为真,输出true

else

echo "false"; //如果表达式为假,输出false

/*

* 注意:

* 可以看到,两个if语句除了or和||不同之外,其他完全一样,但最后的结果却正好

* 相反。在实际应用中要多注意一下这样的细节。

*/

?>-->

<!--<?php

/*

* 比较运算符

* 大多运算符JAVA中相同

*

* 其中,不太常见的就是===和!==。$a===$b,说明$a和$b不只是数值上相等,而且二者的类型

* 也一样。!==和===的意义相近,$a!==$b就是说$a和$b或者数值不等,或者类型不等

*/

$value="100"; //声明一个字符串变量$value

echo "\$value=\"$value\"";

echo "<p>\$value==100;";

var_dump($value==100); //结果为:bool(true)

echo "<p>\$value==true;";

var_dump($value==true); //结果为:bool(true)

echo "<p>\$value!=null;";

var_dump($value!=null); //结果为:bool(true

echo "<p>\$value==false;";

var_dump($value==false); //结果为:bool(false)

echo "<p>\$value===100;";

var_dump($value===100); //结果为:bool(false)

echo "<p>\$value===true;";

var_dump($value===true); //结果为:bool(true)

echo"<p>(10/2.0!==5);";

var_dump(10/2.0!==5); //结果为:bool(true)

?>-->

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: