包含控制语句
1.include与require
在实际的项目开发中,常常需要根据业务逻辑写一些类或函数保存到独立的文件中,然后再根据需要使用包含语句將相关类文件或函数文件引入
比如有两个文件,一个是error_code.php,一个是包含它的test_include.php文件
erro_code.php文件里定义了两个常量,代码如下
- <?php
- $MY_OK=0;
- $MY_ERROR=1;
- ?>
- test_include.php使用include语句包含文件
- <?php
- include "erro_code.php";
- echo ("MY_OK的值等于$MY_OK\n");
- ?>
2.eval()
有些类似于include语句,但是可以动态执行PHP代码
- <?php
- $str='$var=5;';
- eval($str);
- echo $var;
- ?>
3.中止脚本的执行exit()与die()
- <?php
- $var1=12345;
- echo $var1;
- exit(0);
- echo '控制脚本的运行';
- ?>
- $fp=fopen("./readme.txt","r") or die("不能打开该文件");
- //如果fopen打开文件出错,返回布尔值False,die()函数將会立即终止脚本,并显示传递给它的字符串参数
函数
函数可分为系统函数和用户自定义函数
函数的结构
function 函数名称 (参数1,参数2,…,参数N)
- <?php
- function print_table_row(){
- echo '<tr><td>表格的内容</td></tr>';
- }
- echo '<table border="1">';
- for($i=0;$i<3;$i++){
- print_table_row();
- }
- echo '</table>';
- ?>
2.从函数中返回值return
例子
- <?php
- function print_table_row(){
- return '<tr><td>表格的内容</td></tr>';
- }
- echo '<table border="1">';
- for($i=0;$i<5;$i++){
- echo print_table_row();
- }
- echo '</table>';
- ?>
3.使用值传递
- <?php
- function print_table_row($bgcolor,$cell){
- $cellstring='';
- /* if ($bgcolor=='red'){
- return;
- }*/
- for ($i=0;$i<$cell;$i++){
- $cellstring .= "<td>$i</td>";;
- }
- $row="<tr bgcolor=\"$bgcolor\">$cellstring</tr>";
- return $row;
- }
- echo '<table border="1">';
- echo print_table_row('gray',3);
- echo print_table_row('red',3);
- echo print_table_row('gold',3);
- echo '</table>';
- ?>
4.使用可选参数
例子
- <?php
- function print_table_row($bgcolor,$cell=6){
- $cellstring='';
- /* if ($bgcolor=='red'){
- return;
- }*/
- for ($i=0;$i<$cell;$i++){
- $cellstring .= "<td>$i</td>";;
- }
- $row="<tr bgcolor=\"$bgcolor\">$cellstring</tr>";
- return $row;
- }
- echo '<table border="1">';
- echo print_table_row('gray');
- echo print_table_row('red');
- echo print_table_row('gold');
- echo '</table>';
- ?>
- -------------随机获取密码
- <?php
- function genPassword($min=5,$max=8){
- $ValidChars = "abcdefghijklmnopqrstuvwxyz123456789";
- $max_char = strlen($ValidChars)-1;
- $length = mt_rand($min, $max);
- $password = "";
- for ($i=0;$i<$length;$i++){
- $password .= $ValidChars[mt_rand(0, $max_char)];
- }
- return $password;
- }
- echo "新的密码 = " . genPassword() . "\n";
- echo "新的密码 = " . genPassword(6,10) . "\n";
- ?>
5.可变参数的函数
func_num_args() //用于在用户编写的自定义函数中,获取目前传入了几个参数的数量
- <?php
- function getParaNum(){
- $arg_num=func_num_args();
- echo " 传递的参数数量:".$arg_num;
- }
- getParaNum("123","13ds","cda");
- ?>>
- func_get_arg() //指定要存取哪个参数,第一个参数的值为0,可以结合func_num_args()函数自动获取传递的参数值
- <?php
- function getParaValue($a,$b){
- for ($i=0;$i<func_num_args();$i++){
- $param=func_get_arg($i);
- echo "已取得参数值:$param.<br>";
- }
- }
- getParaValue(1,2,3,4,5,6,7,8,9)
- ?>
- array func_get_args() //表示將这次传入的参数,以数组的方式返回
- <?php
- function getParaArray($a,$b){
- $param=func_get_args();
- $param=explode(", ",$param);
- echo "取得的参数为:$param.\n";
- }
- getParaArray(1,2,3,4,5,6,7,8);
- ?>
6.使用引用传递参数
- <?php
- function build_row(&$text){
- $text="<tr><td>$text</td></tr>";
- }
- echo '<table border="1">';
- $t='测试用数据';
- build_row($t);
- echo $t;
- echo $t;
- echo $t;
- echo '</table>';
- ?>