php入门(一)
一,在HTML中嵌入php代码
先看html的代码:
<form action="processorder.php" method="post"> <table> <tr bgcolor="#cccccc"> <td width="150">Item</td> <td width="15">Quantity</td> </tr> <tr> <td>Tires</td> <td align="center"><input type="text" name="tireqty" size="3" maxlength="3" /></td> </tr> <tr> <td>Oil</td> <td align="center"><input type="text" name="oilqty" size="3" maxlength="3" /></td> </tr> <tr> <td>Spark Plugs</td> <td align="center"><input type="text" name="sparkqty" size="3" maxlength="3" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Submit Order" /></td> </tr> </table> </form>
下面是在html中嵌入php代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <strong><?php // create short variable names, also can use '$_REQUEST['name']' $tireqty = $_POST [ 'tireqty' ]; $oilqty = $_POST [ 'oilqty' ]; $sparkqty = $_POST [ 'sparkqty' ]; ?></strong> <!DOCTYPE html> <html> <head> <title>Bob 's Auto Parts - Order Results</title> </head> <body> <h1>Bob 's Auto Parts</h1> <h2>Order Results</h2> <strong> <?php echo "<p>Order processed at " ; echo date ( 'H:i, jS F Y' ). "</p>" ; echo "<p>Your order is as follows: </p>" ; echo "$tireqty tires<br />" ; echo $oilqty . ' bottles of oil<br />' ; echo $sparkqty . " spark plugs<br />" ?></strong> ---------------------------------------------------<br /> <strong> <?php $testHeredoc = <<< EOF line 1 line 2 line 3 EOF; echo "$testHeredoc" . "<br />" ; ?></strong> ---------------------------------------------------<br /> <strong> <?php</strong> <strong> echo "About Comment:" ; //Here is a comment. #Here is a comment too. /* Here is multi line comment. Here is multi line comment. */ ?></strong> </body> </html> |
1.在html中嵌入php代码的语法格式为:
<?php
?>
需要注意的是开始符号“<?php”中间不能有空格。
2. post方法提交的表单内容可以通过php的“$_POST[]”数组按照name获取, 也可以通过“$_REQUEST[]”数组获取。这些数组为超级全局变量。
关于数组和变量作用域之后会详解讲解。
当要获取变量的时候用$符号来获取!
<?php
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
?>
3. 字符串可以用单引号也可以使用双引号引起来。 也可以用反单引号引起来(反单引号在键盘最左上角,与~是一个键)。
三种引号作用不同:
- 单引号内的字符串将被当作纯文本原样输出;''
- 双引号中如果有变量,则会替换成变量的值然后输出文本;有点像c语言中的print();“”
- 反单引号被叫做执行符,php解析器会先执行反单引号中的内容,将执行之后的结果返回。``
4. 字符串可以使用点号“.”连接在一起。在php中点号是唯一的字符串连接符,相当于java中的“+”。
1 2 3 4 5 6 7 8 | <?php echo "<p>Order processed at " ; echo date ( 'H:i, jS F Y' ). "</p>" ; echo "<p>Your order is as follows: </p>" ; echo "$tireqty tires<br />" ; echo $oilqty . ' bottles of oil<br />' ; echo $sparkqty . " spark plugs<br />" ?> |
date('H:i, jS F Y') php通过这样的方式显示日期
08:25, 7th July 2008
在这里H 是小时,i是分钟,(小时和分钟是补0的)j是该月的日期后面的S事顺序后缀在这里是th F是月份的全称
注意:
1 2 3 | echo "$tireqty tires<br />" ; 和 echo $oilqty . ' bottles of oil<br />' ;是等价的<br>对于简单的变量可以将变量写入到由双引号引起来的字符串中 插值 |
5. php中有三种注释方式:分别为
单行注释“//” 或者 像shell一样的单行注释“#”;
多行注释“/**/”。
6.php中所有的变量使用时都是以“$”打头的(变量的使用获取变量的值), 并且变量使用时不需要提前声明。 而且变量的类型也可以随时改变,
这取决于赋值给变量的值的类型。php变量的类型是在每一次赋值时确定和改变的。
7.指定字符串的方法
1 2 3 4 5 6 7 8 | <?php $testHeredoc = <<< EOF line 1 line 2 line 3 EOF; echo "$testHeredoc" . "<br />" ; ?> |
1 | <strong><br>也可以用theEnd 用来指定结束标记<br></strong> |
1 2 3 4 5 | echo <<<theEnd line 1 line 2 line 3 theEnd |
二.数据类型:
可以查看官方手册:http://php.net/manual/zh/language.types.php
四种标量类型:(标量类型即为基本类型,不是类类型)
- boolean(布尔型)
- integer(整型) 用来表示所有实数
- float(浮点型,也称作 double) (php中没有单精度和双精度之分)
- string(字符串) (字符串类型在PHP中属于标量类型,在Java中属于类类型)
两种复合类型:
- array(数组)
- object(对象) --用来保存类的实例
最后是两种特殊类型:
- resource(资源)-- 数据库函数返回这个类型的变量
- NULL(无类型)
变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php不用声明数据类型 $a_bool = TRUE; // a boolean $a_str = "foo" ; // a string $a_str2 = 'foo' ; // a string $an_int = 12; // an integer $a_float = 3.14; // a float(double) echo gettype ( $a_bool ). "<br>" ; // prints out: booleanecho gettype($a_str)."<br>"; // prints out: string echo gettype ( $an_int ). "<br>" ; // prints out: integer echo gettype ( $a_float ). "<br>" ; // prints out: double // If this is an integer, increment it by four if ( is_int ( $an_int )) { echo "an_int = " . $an_int . "<br>" ; $an_int += 4; echo "an_int = " . $an_int . "<br>" ; } // If $bool is a string, print it out // (does not print out anything) if ( is_string ( $a_str )) { echo "String: $a_str" . "<br>" ; } echo var_dump( $a_float , $a_bool , $a_str , $an_int ); //如果想查看某个表达式的值和类型,用 var_dump() 函数。 ?> |
- 如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype() 函数。
- 要查看某个类型,不要用 gettype(),而用 is_type 函数。
输出:
1 2 3 4 5 6 7 8 | boolean string integer double an_int = 12 an_int = 16 String: foo float(3.14) bool(true) string(3) "foo" int(16) |
三 使用常量 没有号,变量才有
define('TIREPRICE', 100); define('OILPRICE', 10); define('SPARKPRICE', 4);
这是php中定义常量的一种方法,这里定义了值为100的TIREPRICE常量、值为10的OILPRICE常量和值为4的SPARKPRICE常量。
2.变量的作用域:
global
static
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
否则以下的y值不会输出,这时候需要加global,以下的作用域是local
和c一样因为y存在栈里,所以{}就会消失
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $x =5; // 全局变量 function myTest() { $y =10; // 局部变量 echo "<p>测试函数内变量:<p>" ; echo "变量 x 为: $x" ; echo "<br>" ; echo "变量 y 为: $y" ; } myTest(); echo "<p>测试函数外变量:<p>" ; echo "变量 x 为: $x" ; echo "<br>" ; echo "变量 y 为: $y" ; ?> |
global:在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $x =5; $y =10; function myTest() { global $x , $y ; $y = $x + $y ; } myTest(); echo $y ; // 输出 15 ?> |
static:每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php function myTest() { static $x =0; echo $x ; $x ++; } myTest(); myTest(); myTest(); ?> 输出结果为012 static 不会因为函数消失而消失 |
输出:
PHP 数组
数组可以在一个变量中存储多个值。
在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值:
1 2 3 4 | <?php $cars = array ( "Volvo" , "BMW" , "Toyota" ); var_dump( $cars ); ?> |
输出:
1 2 3 4 5 6 7 8 | array (3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(6) "Toyota" } |
设置 PHP 常量
常量是全局的
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
- name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
123456789
?php
define(
"GREETING"
,
"欢迎访问 Runoob.com"
);
function
myTest() {
echo
GREETING;
}
myTest();
// 输出 "欢迎访问 Runoob.com"
?>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!