环境搭建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语言一样。很easy,仅仅须要在变量前加上用括号起来的类型名称就可以。还有一种方法还能够通过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 * keyword声明 * * 静态变量 可以在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用 * 原来的值。而一般变量是在函数调用结束后,其存储的数据值将被清除。所占的内存 * 空间被释放。使用静态变量时,先要用keywordstatic来声明变量,吧keywordstatic * 放在腰定义的变量之前 * * 在函数内部定义的变量,其作用域为所在函数。假设在函数外赋值。将被觉得是全然不同 * 的还有一个变量。再退出声明变量的函数时,该变量及对应的值就会被清除。 * */ $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. * * * * 全局变量能够在程序中的不论什么地方訪问,可是在用户自己定义函数内部是不可用的。想在用户自己定义 * 函数内部使用全局变量,要使用globalkeyword声明。 */ $zy = "不会看到"; //声明全局变量$zy $zyy = "会看到"; //声明全局变量$zyy function lxt() { echo $zy . "<br>"; //$zy不能被调用,没有输出 global $zyy; //利用keywordglobal在函数内部定义全局变量 //字符串链接. 同等于JAVA中的+ $zyy = $zyy . "安鹏"; echo $zyy . "<br>"; //此处调用$zyy } lxt(); ?>--> <!--<?php /* * 可变变量 * 可变变量是一种独特的变量,它同意动态改变一个变量名称。其工作原理是该变量的名称 * 由另外一个变量的值来确定。实现project就是在变量的前面再多加一个美元符号“$”; */ $change_name = "trans"; $trans = "You can see me!"; echo $change_name; echo "<br>"; echo $$change_name; ?>--> <!--<?php /* * PHP提前定义变量 经常使用的提前定义变量例如以下表: $_SERVER[‘SERVER_ADDR’] 当前执行脚本所在server的IP地址 $_SERVER[‘SERVER_NAME’] 当前执行脚本所在server的名称 $_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时所使用的port $_SERVER[‘SCRIPT_FILENAME’] 当前运行脚本的绝对路径。注意,假设脚本在CLI中被运行,作为相对路径,如file.php或者../file.php,$_SERVER[‘SCRIPT_FILENAME’]将包括用户指定的相对路径。 $_SERVER[‘SERVER_PORT’] server所使用的port,默觉得80。假设使用ssl安全连接。则这个值为用户设置的port $_SERVER[‘SERVER_SIGNATURE’] 包括server版本号和虚拟主机名的字符串 $_SERVER[‘DOCUMENT_ROOT’] 当前执行脚本所在的文档根文件夹,在server配置文件里定义。 $_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>