PHP 函数的声明与用法

 更新时间:2016年11月25日 15:09  点击:1244

PHP 函数
在本教程中,我们将为您讲解如何创建自己的函数。

如需内建函数的参考和实例,请访问我们的 PHP 参考手册。
创建 PHP 函数
函数是一种可以在任何被需要的时候执行的代码块。

创建 PHP 函数:
函数功能简述。

语法: 返回类型 函数名称(类型 参数1, 类型 参数2....);

返回值: 变量类型

函数种类: 例如: 数据库教程, 网络..等等


 
 
内容说明


函数说明详述内容


 
 
使用范例


函数的范例 (本栏可能省略)

 
 
参考


小节索引 函数名称, 小节索引 函数名称... (本栏可能省略)
一个简单的函数,在其被调用时能输出我的名称的:

<html>
<body>

<?php教程
function writeMyName()
  {
  echo "David Yang";
  }

writeMyName();
?>

</body>
</html>

现在,我们要在 PHP 脚本中使用这个函数了:

<html>
<body>

<?php
function writeMyName()
  {
  echo "David Yang";
  }

echo "Hello world!<br />";
echo "My name is ";
writeMyName();
echo ".<br />That's right, ";
writeMyName();
echo " is my name.";
?>

</body>
</html>以上代码的输出:

Hello world!
My name is David Yang.
That's right, David Yang is my name.


缩合上面我们来写关于php函数详细教程

<?php
/*
 *  1.内部函数:PHP可以在函数内部再声明函数
 *    目的就是在函数内部调用
 *    用来帮助外部函数完成一些子功能
 *
 *  2.递归函数:在自己内部调用自己的函数名
 *
 *  3.重用函数
 *
 *   require:用于静态包含
 *   include:用于动态包含
 *   require_once:用于静态包含,只包含一次
 *   include_once:用于动态包含,只包含一次
 *
 *  4.一些系统函数的使用
 * 资源=opendir("目录名")
 * readdir(资源)
 *
 *
 */
 //内部函数
 function score($php,$java,$dotnet)
 {
  function php($php)
  {
   if($php>60)
    return "及格";
   else
    return "不及格";
  }
  function java($java)
  {
   if($java>60)
    return "及格";
   else
    return "不及格";
  }
  function dotnet($dotnet)
  {
   if($dotnet>60)
    return "及格";
   else
    return "不及格 www.111cn.net/c5-03/ ";
  }
  
  $total=$php+$java+$dotnet;
  $agv=$total/3;
  echo "你的php成绩是{$php}分,".php($php)."<br>";
  echo "你的java成绩是{$java}分,".java($java)."<br>";
  echo "你的dotnet成绩是{$dotnet}分,".dotnet($dotnet)."<br>";
  echo "你的总分是:{$total}<br>";
  echo "你的平均分是:{$agv}<br>";
 }
  score(50,90,70);
 
 //递归函数
 function demo($num)
 {
  echo $num."<br>";
  if($num>0)
   demo($num-1);
  else
   echo "--------------------------------<br>";
  echo $num."<br>";
 }
 demo(10);
 
 function total($dirname,&$dirnum,&$filename)
 {
  $dir=opendir($dirname);
  readdir($dir)."<br>";
  readdir($dir)."<br>";
  while($filename=readdir($dir))
  {
   $newfile=$dirname."/".$filename;
   echo $filename."<br>";
   if(is_dir($filename
  }

 }
 $dirnum=0;
 $filenum=0;
 total("c:/windows",$dirnum,$filenum);
 echo "目录总数:".$dirnum."<br>";
 echo "文件总数:".$filenum."<br>";
?>

php教程数组声明,遍历,数组全局变量

<?php
/*
 * 一、数组的概述
 * 1.数组的本质:管理和操作一组变量,成批处理
 * 2.数组时复合类型(可以存储多个)
 * 3.数组中可以存储任意长度的数据,也可以存储任意类型的数据
 * 4.数组可以完成其他语言数据结构的功能(链表,队列,栈,集合类)
 * 
 *
 *
 * 二、数组的分类
 *  数组中有多个单元,(单元称为元素)
 *  每个元素(下标[键]和值)
 *  单访问元素的时候,都是通过下标(键)来访问元素
 *  1.一维数组,二维数组,三维数组。。。多维数组
 *  (数组的数组,就是在数组中存有其他的数组)
 *  2.PHP中有两种数组
 *   索引数组:就是下标是顺序整数的索引
 *   关联数组:就是下标是字符串作为索引
 *
 *   下标(整数,字符串)只有这两种
 *
 *
 * 三、数组多种声明方式
 *
 * 1.直接为数组元素赋值声明
 *   如果索引下标不给出,就会从0开始顺序索引
 *   如果给出索引下标,下一个就会从最大的开始增1
 *   如果后面出现前面的下标,如果是赋值就是为前面的元素重新赋值
 *   混合声明时,索引和关联不互相影响(不影响索引下标的声明)
 *
 * 2.使用array()函数声明
 *   默认是索引数组
 *   如果为关联数组和索引数组指定下标,使用 键=>值
 *   多个成员之间使用" , "分割
 * 3.使用其他的函数声明
 *
 *
 *
 *
 */
 //索引数组
 $user[0]=1;//用户序号
 $user[1]="zhangsan";//用户名
 $user[2]=10;//年龄
 $user[3]="nan";//性别
 echo '<pre>';
 print_r($user);
 echo '</pre>';

 //关联数组
 $user["id"]=1;
 $user["name"]="zhangsan";
 $user["age"]=10;
 $user["sex"];
 $user["age"]=90;//赋值
 echo $user["name"];//输出

 //使用array()声明数组
 $user=array(1,"zhangsan",10,"nan");
 //使用array()声明关联数组
 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");

 //声明多维数组(多条记录),来保存一个表中的多条用户信息记录
 $user=array(
  //用$user[0]调用这一行,比如调用这条记录中的姓名,$user[0][1]
  array(1,"zhangsan",10,"nan"),
  //用$user[1]调用这一行,比如调用这条记录中的姓名,$user[1][1]
  array(2,"lisi",20,"nv")
 );

 //数组保存多个表,每个表有多条记录
 $info=array(
  "user"=>array(
   array(1,"zhangsan",10,"nan"),
   array(2,"lisi",20,"nv")
  ),

  "score"=>array(
   array(1,90,80,70),
   array(2,60,40,70)
  )

 

 );

 echo $info["score"][1][1];//输出60,
?>

数组超级全局变量

<?php
/* 预定义数组:
 *  自动全局变量---超全局数组
 *
 *  1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据
 *  2.这些数组比较特别
 *  3.全局范围内自动生效,都可以直接使用这些数组
 *  4.用户不能自定义这些数组,但这些数组的操作方式和自己定义的数组操作的方式一样
 *  5.在函数中直接可以使用这些数组
 *
 * $_GET //经由URL请求提交至脚本的变量
 * $_POST  //经由HTTP POST 方法提交到脚本的变量
 * $_REQUEST //经由GET , POST和COOKIE机制提交 到脚本的变量
 * $_FILES  //经由http post方法文件上传而提交至脚本的变量
 * $_COOKIE
 * $_SESSION
 * $_ENV  //执行环境提交至脚本的变量
 * $_SERVER //变量由WEB服务器设定的,或直接和当前脚本的执行环境相关联
 * $GLOBALS //只要是当前脚本有效的变量都在这里,数组的键名为全局脚本的名称
 *
 *
 */
 //超全局数组在函数内部可以直接调用
 $arr=array(10,20);//一般数组
 $_GET=array(50,90);//超全局数组
 function demo(){
  global $arr;//调用全局变量要先包含
  print_r($arr);
  print_r($_GET);//直接调用超全局数组不用包含
 }
 
 


?>

<!-- **********页面传值get请求*************** -->
<?php
 //直接把传的值当变量用,当php.ini配置文件中register_global=on时有用。
 echo $username."<br>";
 echo $email."<br>";
 echo $page."<br>"; 
 //最稳定的取值方法
 echo $_GET["username"]."<br>";
 echo $_GET["email"]."<br>";
 echo $_GET["page"]."<br>";
?>
<a href="demo.php?username=zhangsan&email=aaa@bbb.com&page=45">this is a $_GET test</a>

<!-- ***********页面传值post请求**************** -->
<form action="demo.php" method="post">
 username:<input type="text" name="uname" /> <br/>
 password:<input type="password" name="pass" /> <br/>
 <input type="submit" value="login" /> <br />
</form>
<?php 
 print_r($_GET);//不能接收到
 print_r($_POST);//这样才能接收到
?>

<?php
 //$_ENV的使用
 echo'<pre>';
 print_r($_ENV);
 echo'</pre>';
 //显示当前环境
 // 也可以单个遍历
?>

<?php
 //利用$GLOBALS超全局数组在函数内部调用全局变量
 $a=100;
 $b=200;
 $c=300;
 function demo()
 {
  //直接调用全局变量
  echo $GLOBALS["a"]."<br>";
  echo $GLOABLS["b"]."<br>";
  echo $GLOABLS["c"]."<br>";
  
 }
?>


数组遍历

<?php
/* 数组的遍历
 *
 *  1.使用for语句循环遍历数组
 *    1.其他语言(只有这一种方式)
 *    2.PHP中这种方式不是首选的方式
 *    3.数组必须是索引数组,而且下标必须是连续的。
 *     (索引数组下标可以不连续,数组还有关联数组,这两种不能遍历)
 *
 *  2.使用foreach语句循环遍历数组
 *    foreacho(数组变量 as 变量值){
 *     //循环体
 *     }
 *     1.循环次数由数组的元素个数决定
 *     2.每一次循环都会将数组中的元素分别赋值给后面变量
 *
 *    foreach(数组变量 as 下标变量=> 值变量){
 *  }
 *
 *
 *  3.while() list() each() 组合循环遍历数组
 *
 * each()函数:
 *  1.需要一个数组作为参数
 *  2.返回来的也是一个数组
 *  3.返回来的数组是0,1,key,value四个下标(固定的)
 *    0和key下标是当前参数数组元素的键
 *    1和value下标是当前参数数组元素的值
 *  4.默认当前元素就是第一个元素
 *  5.每执行一次后就会将当前元素向后移动
 *  6.如果到最后的元素再执行这个函数,则返回false
 * list()函数:
 *  1. list()=array();需要将一个数组赋值给这个函数
 *  2.数组中的元素个数,要和list()函数中的参数个数相同
 *  3.数组中的每个元素值会赋值list()函数中的每个参数,list()将每个参数转为变量
 *  4.list()只能接受索引数组
 *  5.按索引的下标顺序来给参数赋值
 *
 *
 *
 */
 //for语句遍历数组
 $user=array(1,"zhangsan",40,"nan");
 for($i=0;$i<4;$i++)
 {
  echo"$user[{$i}]=".$user[$i]."<br>";
 }
 
 //使用foreach
 $user=array(1,"zhangsan",40,"nan");
 foreach($user as $val)//$val是自定义变量
 {
  echo $val."<br>";//输出与下标无关
 }

 foreach($user as $key=>$val)//$val $key 都是自定义变量
 {
  echo $key."=====>".$val."<br>";
 }
 
 //foreach遍历多维数组
  $info=array(
  "user"=>array(
    //$user[0]
    array(1, "zansan", 10, "nan"),
    //$user[1][1]
    array(2, "lisi", 20, "nv"),    //$user[1]
    //$user[2]
    array(3, "wangwu", 30, "nan")
  ),
  "score"=>array(
    array(1, 100, 90, 80),
    array(2, 99, 88, 11),
    array(3, 10, 50, 88)
   ),
  "connect"=>array(
    array(1, '110', 'aaa@bbb.com'),
    array(2, '120', 'bbb@ccc.com'),
    array(3, '119', 'ccc@ddd.com') 
   )
  );
foreach($info as $tableName=>$table)
{
 echo '<table align="center" width="500" border="1">';
 echo '<caption><h1>'.$tableName.'</h1></caption>';
 foreach($table as $row)
 {
  echo '<tr>';
  foreach($row as $col)
  {
   echo '<td>'.$col.'</td>';
  }
  echo '</tr>';
 }
 echo '</table>';
}
 

 //each()的使用
 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
 $a=each($user);//Array ( [1] => 1 [value] => 1 [0] => id [key] => id )  默认是第一个元素的值
 print_r($a);
 $b=each($user);
 print_r($b);//Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name ) 每执行一次,向后遍历一个
 
 $c=each($user);
 print_r($c);//Array ( [1] => 10 [value] => 10 [0] => age [key] => age )

 $d=each($user);
 print_r($d);//Array ( [1] => nan [value] => nan [0] => sex [key] => sex )

 $e=each($user);
 var_dump($e);//bool(false)  当没有元素时,返回的值

 //each()配合while遍历
 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
 while($arr=each($user))
 {
  //echo $arr[0]."====>".$arr[1]."<br>";//通过0,1 来显示 键(下标) 和 值
  echo $arr["key"]."===>".$arr["value"]."<br>";//通过key,value 来显示 键 值
 }

 

 //list()函数的使用
 list($name,$age,$sex)=array("zhangsan",10,"nnnnn");
 echo $name."<br>";
 echo $age."<br>";
 echo $sex."<br>";
 //另一种使用方法
 list(,,$sex)=array("zhangsan",10,"nnnnn");
 echo $sex."<br>";//只把性别转换为变量
 //ip判断
 $ip="192.168.1.128";
 list(,,,$d)=explode(".",$ip);//explode表示用 . 来分隔,并返回一个数组
 echo $d;//取出128

 //list()只能接收索引数组的例子
 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
 list($key,$value)=each($user);//Array( [1]=>1 [0]=>id) 按照索引下标的顺序给list中的参数赋值,所以先是 0键  然后是 1值
 echo $key."--->".$value;

 //while list() each()  组合使用
 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
 while(list($key,$value)=each($user))
 {
  echo $key."--->".$value."<br>";
 }


 //多次循环只显示一次的解决方法
 //使用数组的内部指针控制函数
 //next(数组);数组指针移动到下一个
 //prev(数组);数组指针移动到上一个
 //reset(数组);数组指针移动到第一个(复位)
 //end(数组);数组指针移动到最后一个
 //current(数组);获取当前元素的值,当前元素时指数组指针指向的元素。
 //key(数组);获取当前元素的键值(下标)
 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
 while(list($key,$value)=each($user))
 {
  echo $key."--->".$value."<br>";
 }
 //在这里将数组指针移动到第一个以下循环就能输出
 //reset($user)
 while(list($key,$value)=each($user))//因为each()到最后一个返回false,所以循环直接跳出
 {
  echo $key."--->".$value."<br>";
 } 
 while(list($key,$value)=each($user))//因为each()到最后一个返回false,所以循环直接跳出
 {
  echo $key."--->".$value."<br>";
 } 
 
 echo current($user)."=====>".key($user);
 

?>

我们实现最简单的文件上传功能,只要利用php教程自带的move_uploaded_file函数就可以方便实现

 

<?php
     $tmp_filename = $_FILES['myupload']['tmp_name'];
     if(!move_uploaded_file($tmp_filename,"/path/to/dest/{$_FILES['myupload']['name']}")) {
          echo "An error has occurred moving the uploaded file.<BR>";
          echo "Please ensure that if safe_mode is on that the " . "UID PHP is using matches the file.";
          exit;
     } else {
          echo "The file has been successfully uploaded!";
     }
?>
这两天学了写表单。总结于此,以备忘。
例子一(POST提交表单):
 
view sourceprint?
<html>
    <head>
        <title>
        Chunkify Form
        </title>
    </head>
    <body>
    <form action="chunkify.php教程" method="POST">
    Enter a word:
    <input type="text" name="word"/><br/>
    How long should be the chunks be?
    <input type="text" name="number"/><br />
    <input type="submit" value="Chunkify">
    </form>
    </body>
</html>
 
view sourceprint?
<html>
    <head>
        <title>
        Chunkify Word
        </title>
    </head>
    <?php
        $word=$_POST['word'];
        $number=$_POST['number'];
        $chunks=ceil(strlen($word)/$number);
        echo "The $number-letter chunks of '$word' are:<br/>n";
        for ($i = 0;$i<$chunks;$i++){
            $chunk=substr($word,$i*$number,$number);
            printf("%d: %s<br />n",$i+1,$chunk);
        }
    ?>
    </body>
</html>
 
html显示出来的页面。
提交表单后php处理出来的页面。在这个例子中,我输入一个单词,然后给定一个长度,将单词等分成该长度的块。
演示了通过POST方法提交表单。
 


例子二(单选,GET接受表单):

view sourceprint?
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="GET">
Select your personality attributes:<br/>
<select name="att[]" >
<option value="perky">perky</option>
<option value="morese">morose</option>
<option value="thinking">thinking</option>
<option value="feeling"> feeling</option>
<option value="thrifty">speed-thrift</option>
<option value="prodigal">shopper</option>
</select>
<br>
<input type ="submit" name="s" value="Record my personality">
</form>
  
<?php
    if (array_key_exists('s',$_GET)){
        $des = implode(' ', $_GET['att']);
        echo "You have a $des personality.";
    }
?>
 


例子三(多选,GET接受表单):
注意到此时<select name="att[]" multiple> 下划线告诉GET你传输的是个数组,黑体字部分则是表示改选择框为多选框

view sourceprint?
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="GET">
Select your personality attributes:<br/>
<select name="att[]" multiple>
<option value="perky">perky</option>
<option value="morese">morose</option>
<option value="thinking">thinking</option>
<option value="feeling"> feeling</option>
<option value="thrifty">speed-thrift</option>
<option value="prodigal">shopper</option>
</select>
<br>
<input type ="submit" name="s" value="Record my personality">
</form>
  
<?php
    if (array_key_exists('s',$_GET)){
        $des = implode(' ', $_GET['att']);
        echo "You have a $des personality.";
    }
?>
 

 


例子四(复选框checkbox): 同样name="att[]"是告诉GET你传输的是一个数组, checked 则表示该选项为初始默认选择,同样上例,在标签内加入 selected="selected"也可以
让多选初始默认选择。

view sourceprint?
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="GET">
Select your personality attributes:<br/>
perky<input type="checkbox" name="att[]" value="perky" checked /> <br/>
morose<input type="checkbox" name="att[]" value="morose" checked /> <br/>
thinking<input type="checkbox" name="att[]" value="thinking" /> <br/>
feeling<input type="checkbox" name="att[]" value="feeling" /> <br/>
<br>
<input type ="submit" name="s" value="Record my personality">
</form>
  
<?php
    if (array_key_exists('s',$_GET)){
        echo "<pre>";
        print_r($_GET);
        echo "</pre>";
        if (is_null($_GET['att'])) exit;
          
        $des = implode(' ', $_GET['att']);
        echo "You have a $des personality.";
    }
?>
 
 

 


例子五(单选框): 注意,同一个选项即可的单选必须name相等

view sourceprint?
<form>
男性:
<input type="radio" checked="checked" name="Sex" value="male" />
<br />
女性:
<input type="radio" name="Sex" value="female" />
<br>
<hr>
男性:
<input type="radio" checked="checked" name="Se" value="male" />
<br />
女性:
<input type="radio" name="Se" value="female" />
</form>
  
<p>当用户点击一个单选按钮时,该按钮会变为选中状态,其他所有按钮会变为非选中状态。</p>
 
 
 

 


例子六(stick form):一个表格如何要实现之前输入过的值在页面刷新后仍然存在可以如下

view sourceprint?
<?php
  $f = $_POST['fa'];
  
?>
  
<form action = "<?php echo $_SERVER['PHP_SELF']; ?> " method="POST">
temperature:
<input type="text" name="fa" value="<?php echo $f;?>" />;
<br/>
<input type="submit" name="Convert to Celsius" />
</form>
<?php 
    if (!is_null($f)){
        $c = ($f-32)*5/9;
        printf("%.2lf is %.2lfC",$f,$c);
    }
?>
 
  
 
都是一些简单的表单处理~

PHP中数据类型详解

四种标量类型:
boolean (布尔型)
integer (整型)
float (浮点型, 也称作 double)
string (字符串)
两种复合类型:
array (数组)
object (对象)
最后是两种特殊类型:
resource (资源)
NULL (NULL)
为了确保代码的易读性,本手册还介绍了一些伪类型:
mixed
number
callback
以及伪变量 $....
可能还会读到一些关于“双精度(double)”类型的参考。实际上 double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。
变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的。
Note: 如果想查看某个表达式的值和类型,用 var_dump()。
如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype()。要查看某个类型,不要用 gettype(),而用 is_type 函数。以下是一些范例:
 <?php教程
$a_bool = TRUE;   // a boolean
$a_str  = "foo";  // a string
$a_str2 = 'foo';  // a string
$an_int = 12;     // an integer

echo gettype($a_bool); // prints out:  boolean
echo gettype($a_str);  // prints out:  string

// If this is an integer, increment it by four
if (is_int($an_int)) {
    $an_int += 4;
}

// If $bool is a string, print it out
// (does not print out anything)
if (is_string($a_bool)) {
    echo "String: $a_bool";
}
?>

如果要将一个变量强制转换为某类型,可以对其使用强制转换或者 settype() 函数。
注意变量根据其当时的类型在特定场合下会表现出不同的值。更多信息见类型戏法。此外,你还可以参考 PHP 类型比较表看不同类型相互比较的例子。
 
 
 
#
 
二、PHP的数据类型

Int zjj=100;                  //这种赋值是对的

Int zjj="hello,world";            //这种编译器就会提示错误

在PHP中,对变量的数据类型不需要声明,可以直接赋值。如下面的

$zjj=100;               //表示zjj为整型

$zjj="hello,world"            // 表示zjj为字符串型

PHP中的数据类型分成两种:一是标量数据类型,另一种就是复合数据类型。

标量数据类型有:

布尔型(boolean)         整型(integer)          浮点型(foat也叫做double)    

复合数据有:

数组(array)        对象(object)

还有两种特殊的数据

资源(resource)           空值(NULL)

1、布尔型是最简单的变量,布尔变量:true和false值

要设定一个布尔变量,只需将这两个值赋给变量就行了。PHP中就算是关键字也可以做变量名。

<?php
 $True="我是变量" . True;                   //这里有点的,书上有时印刷并没有。
 echo($True);
 echo("<BR>");                        //起到回车的作用
 echo("我是关键字" . True)
?>

执行结果:我是变量1                            //这里true就是1

                  我是关键字1

true和false实际上是代表数值1和0,因此true在输出时显示为1,但是在给变量赋值的时候,如果赋值为1,则被当成整型,如果被赋值为true,则被当成布尔型

当转换为布尔型时,以下值被认为是false

 (1)布尔值false

(2)整型值0(零)

(3)浮点型值0.0(零)

(4)空白字符串和字符串"0"

(5)没有成员变量的数组

(6)没有单元的对象(仅适用php4)

(7)特殊类型NULL

而所有其他值都被认为是TRUE包括任何资源。

2、整型

+2147483647到-2147483647

 

<?php
 $int_D=2147483647;  //十进制赋值
 echo($int_D);
 echo("<br>");
 $int_H=0x7FFFFFFF;  //十六进制赋值
 echo($int_H);
 echo("<br>");
 $int_O=017777777777;  //八进制赋值
 echo($int_O);
 echo("<BR>");
?>

执行结果:

2147483647
2147483647
2147483647

如果指定一个数超出了inter的范围,将会被解释为float

3、浮点型

1.7E-308到1.7E+308

<?php
 $float_1=90000000000; 
 echo($float_1);
 echo("<br>");
 $float_2=9E10; 
 echo($float_2);
 echo("<br>");
 $float_3=9E+10;
 echo($float_3);
?>

执行结果:

90000000000
90000000000
90000000000

4、字符串

PHP中有三种方式定义字符串

1、单引号方式。

$single_str='我是人';

如果想在浏览中输出单引号,必须在字符串中加入转义符号“”

<?
 $single_str='我被单引号括起来了!<br>';      //正常输出
 echo $single_str;
 $single_str='输出单引号: '嘿嘿,我在单引号里面'<br>';      //加了转义符可以输出单引号
 echo $single_str;
 $single_str='输出双引号:"我在双引号里面"<br>';         //正常输出
 print $single_str;
 $single_str='输双美元符号:$';                 //正常输出
 print $single_str;
?>

执行结果:

我被单引号括起来了!
输出单引号: '嘿嘿,我在单引号里面'
输出双引号:"我在双引号里面"
输双美元符号:$

(2)、双引号方式

$Double_Str="我是人"

为了在字符串中输出各种特殊字符,可以使用转义符

$Double_Str="输出美元符号:$";

$Double_Str="输出反斜杠:";

<?
 $Double_str="我被双引号括起来了!<br>";
 echo $single_str;
 $single_str="输出单引号:'嘿嘿,我在单引号里面'<br>"; //不需要转义符
 echo $single_str;
 $single_str="输出双引号:"我在双引号里面"<br>";  //需要转义符
 print $single_str;
 $single_str="输出美元符号:$ <br>";  //需要转义符
 print $single_str;
 $single_str="输出反斜杠 : <br>";  //需要转义符
 print $single_str;
 
?>

执行结果:

输出单引号:'嘿嘿,我在单引号里面'
输出双引号:"我在双引号里面"
输出美元符号:$
输出反斜杠 :

(3)、Heredoc 方式给字符串赋值

<?
$zjj1_str =<<<zjj          //=<<<这个相当于链接符,获取zjj到zjj中间的数据
 你好<br>
 美元符号  $ <br>         //zjj1和zjj都是可以随便起名字的。
 反斜杠   <br>             
 "我爱你"<br>
 '我恨你'
zjj;
 echo $zjj1_str;
?>

执行结果:

你好
美元符号 $
反斜杠
"我爱你"
'我恨你'

(4)、串中的变量

<?php
 $str_1 = "我是变量的值!"; 
 $str_2 = "str_1 : $str_1<br>";  //双引号字符串中包含变量$str_1
 echo $str_2;

 $str_1 = '我是变量的值';
 $str_2 = 'str_1 : $str_1<br>';  //单引号中包含字符串的值
 echo $str_2;

 $str_1 = "我是变量的值!"; 
 $str_2 = "str_1 : $str_12 <br>";  //引用的变量名后,多了个字符2即$str_12
 echo $str_2;

 $str_1 = "我是变量的值!"; 
 $str_2 = "str_1 : ${str_1}2 <br>";  //引用的变量名后,多了个字符2即$str_12
 echo $str_2;
?>

执行结果:

str_1 : 我是变量的值!
str_1 : $str_1
str_1 :
str_1 : 我是变量的值!2

从输出可以看出,双引号字符串是赋值的含义,直接输出变量的值。而单引号的字符串,包含的是变量的名称,可以理解为直接运行语句的结果,直接输出变量的名称而不是变量的值。

$str_2 = "str_1 : $str_12 <br>";    这句如果变量后面跟着非空格的字符,会让编译器糊涂,会把$str_12当成变量,而上面又没有定义,因此会输出空值。为了解决这个问题可以用${str_1}2 或{$str_1}2 这个来表达。
使用 PHP 函数对变量 $x 进行比较
表达式 gettype() empty() is_null() isset() boolean : if($x)
$x = ""; string TRUE FALSE TRUE FALSE
$x = null; NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = "1"; string FALSE FALSE TRUE TRUE
$x = "0"; string TRUE FALSE TRUE FALSE
$x = "-1"; string FALSE FALSE TRUE TRUE
$x = "php"; string FALSE FALSE TRUE TRUE
$x = "true"; string FALSE FALSE TRUE TRUE
$x = "false"; string FALSE FALSE TRUE TRUE
 
松散比较 ==
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
-1 TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
"1" TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
"php" TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
 
严格比较 ===
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
"1" FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
array() FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
"php" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE

[!--infotagslink--]

相关文章

  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#中using的三种用法

    using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C# 类的声明详解

    本文主要对C# 类的声明进行详细介绍。具有一定的参考价值,下面跟着小编一起来看下吧...2020-06-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • PHP函数strip_tags的一个bug浅析

    PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
  • SQL Server中row_number函数的常见用法示例详解

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • PHP加密解密函数详解

    分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30
  • php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法

    最近遇到一个问题,就是在使用php的mail函数发送utf-8编码的中文邮件时标题出现乱码现象,而邮件正文却是正确的。最初以为是页面编码的问题,发现页面编码utf-8没有问题啊,找了半天原因,最后找到了问题所在。 1.使用 PEAR 的...2015-10-21
  • C#中加载dll并调用其函数的实现方法

    下面小编就为大家带来一篇C#中加载dll并调用其函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25