暑假php学习记录(1)

来源:互联网 发布:windows查看gif 编辑:程序博客网 时间:2024/05/22 01:45


  1. 自定义分界符
  2. 单引号双引号
  3. 花括号&连接符
  4. foreach$可变变量&=>、->
  5. 函数strcmp()与strcasecmp() 




1.自定义分界符
<body><?php$str=<<<jstart<script type="text/javascript">alert("动态网页之美-php");</script>jstart;        echo $str;?></body>
不知道为什么无法运行,在dw和zend都是运行错误,以后解决吧。。。






2.单引号双引号
" " 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。
' ' 单引号里面的不进行解释,直接输出。
$abc='my name is tome';echo $abc     //结果是:my name is tomecho '$abc'   //结果是:$abcecho "$abc" //结果是:my name is tom
</pre><pre name="code" class="php">
但是当用在sql语句中时当引号内有变量需要被解释时如SQL语句可以写成:$sql = "select * from user where id = '$id'";
$sql = "insert into user (`user`,`pwd`) values ('$a','$b')";
$sql = "select * from user where id = {$id}";$sql = "insert into student values ('', '".$_POST['User']."', '".$Pwd."','24')";
</pre><pre name="code" class="php">$result=mysql_query("SELECT*FROM $usertype WHERE loginnumber={$loginnumber} AND loginpassword='$loginpassword'");
$sql="INSERT INTO attendance(`student-id`,`s-time`,`e-time`)VALUES ('".$stu_id."','".$_POST['t1']."','$t2')";变量都是可以被解释的。
(部分引用来自http://vligang.blog.163.com/blog/static/1169397612012101332740336/)





3.花括号&连接符
1.简单句法规则(用花括号界定变量名,适用于PHP所有版本):
  $a = 'flower';
  echo "She received some $as";   // 无效;字母s会被当成有效的变量名组成元素,但是这里的变量是$a
  echo "She received some $a"."s";
  echo "She received some ".$a."s"; 
   echo "She received some {$a}s"; // 有效;推荐的使用方法

2.复杂句法规则(用花括号界定表达式等,使用与PHP4+):
  echo "有效的写法: {$arr[4][3]}";      // 有效;界定多维数组
  echo "有效的写法: {$arr['foo'][3]}";  // 有效;当在字符串中使用多维数组时,一定要用括号将它括起来
  echo "有效的写法: {$this->width}00"; // 有效;如果不界定的话,就会变成 $this->width00
  echo "有效的写法: {$this->value[3]->name}"; // 有效;该例演示了界定链式调用
  echo "有效的写法: $name: {${$name}}"; // 有效;该例演示的效果实际上是一个可变变量
  echo "有效的写法: {${getName()}}";          // 有效;该例演示了将函数的返回值作为变量名
  echo "有效的下发: {${$this->getName()}}";     // 有效;该例演示了将函数的返回值作为变量名
  注意1:echo "这样写有效吗: {getName()}";输出结果为:'这样写有效吗:
{getName()}'。因为里面不含$,所以花括号不会被当作界定符

严谨的写法应该是:echo "This is {$arr['d']}";
              $SQL1 = "select * from table where id={$_GET['id']}";
(部分引用来自http://www.cnblogs.com/jayleke/archive/2011/11/08/2241609.html)





4.foreach$可变变量&=>、->

表单处理文件test.php
传统的中规中矩的写法
<?php$user= $_POST['user'];$password = $_POST['password'];$name = $_POST['name'];echo "<p>Your order is as follows:</p>";echo "<br />\$user=".$user;echo "<br />\$password=".$password;echo "<br />\$name=".$name;?>
如果orderform.html里有很多表单变量,可以想像上面的赋值语句将会很长,而我们采用可变变量就可以优化为如下非常简洁的代码:

<?phpforeach ($_POST as $key => $value){$$key = $value;}echo "<p>Your order is as follows:</p>";echo "<br />\$user=".$user;echo "<br />\$password=".$password;echo "<br />\$name=".$name;?>

去掉其中一个值
<span style="font-size:14px;"><?phpunset($_POST['submit']);// orforeach ($_POST as $Key => $Value)  {    if (strcasecmp($Key, 'submit') === 0) {        continue;    }    // Continue process}?></span>
<span style="font-family: 'Courier new';"><span style="font-size:14px;"></span></span>
<span style="font-family: 'Courier new';"><span style="font-size:14px;">=> 是数组成员访问符号</span></span>
<span style="font-size:14px; font-family: 'Courier new';">-> 是对象成员访问符号</span>
比如:$array = array("site map"=>"map.php"); //定义了一个数组,包含一个数组成员:键名为site map,值为map.php$this->$name = $value

$this 在php语言里是个特定的变量,它代表了类本身,->是访问其类成员的操作符,$this->$name = $value,这句代码意思是:将当前类的name变量的值设置为 $value去掉其中一个值





5.函数strcmp()与strcasecmp() & 函数Rand()

rand() 函数返回随机整数。

语法

rand(min,max)
<?phpecho(rand();echo(rand();echo(rand(10,100))?>输出:17757379497
输出随机数字、字母
<?php$str="0123456789abcdefghijklmnopqrstuvwxyz";$n=5;$len=strlen($str)-1;for($i=0;$i<=$n;$i++){$s=$s.$str[rand(0,$len)];}echo $s;?>


PHP使用strcmp()函数和strcasecmp()函数可以按字节对字符串进行比较。

strcmp()函数区分字符的大小写。

strcasecmp()函数不区分字符的大小写。

strnatcmp()不区分大小写,按照自然排序。而strcmp()函数是按照字典排序。


If you want to compare $_SESSION variables to a string use this 

<?php 
if(isset($_SESSION['usertype'])) 
{    
     echo 
"usertype " .$_SESSION['usertype']; 
                
     
$ut $_SESSION['usertype']; 
                
     if(
strnatcmp($ut,"admin")) 
     { 
          echo 
"hello admin"
     } 

?>


下面的例子展示了该算法与计算机常规字符串比较算法( strcmp() 所使用的)的区别: 

<?php

$arr1 $arr2 = array("img12.png""img10.png""img2.png""img1.png");

echo "Standard string comparison ";

usort($arr1"strcmp");

print_r($arr1);


echo 
" Natural order string comparison ";
usort($arr2"strnatcmp");
print_r($arr2);
?>

以上例程会输出:

Standard string comparisonArray(    [0] => img1.png    [1] => img10.png    [2] => img12.png    [3] => img2.png)Natural order string comparisonArray(    [0] => img1.png    [1] => img2.png    [2] => img10.png    [3] => img12.png)

1 0
原创粉丝点击