暑假php学习记录(1)


  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 tom
echo '$abc'   //结果是:$abc
echo "$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')";
变量都是可以被解释的。




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']}";





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里有很多表单变量,可以想像上面的赋值语句将会很长,而我们采用可变变量就可以优化为如下非常简洁的代码:

<?php
foreach ($_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;"><?php
unset($_POST['submit']);

// or

foreach ($_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)
<?php
echo(rand();
echo(rand();
echo(rand(10,100))
?>
输出:
17757
3794
97
输出随机数字、字母
<?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 comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值