ywg 发表于 2017-4-8 06:48:42

《PHP编程网络大讲堂》--摘录11/4


[*]
php下载

  http://www.php.net
VC6 在windows下使用php+apache;VC9在windows下使用IIS+php。官方建议采用non thread Safe环境,即线程安全。建议下载php-5.3.1-Win32-VC6-x86.zip

  


       2.语法基础


  echo 不能用在复杂表达式,因为返回void,能输出多个字符串。

  



<?p
$i="我";
$you="你";
echo $i,"很好, ", $you , "最近怎么样?"
?>




  
 


  print 返回boolean值;

  


  printf 返回整型数值,表示字符串长度


<?php
printf("%s is %d years old. ","Candy",20);//输出:Candy is //20 years old。
printf("(1.234*100) = %d", (1.23*100));//输出(1.234*100=123)
$num=100.01;
printf("%s----%d---%b---%x---%o---%f", $num, $num, $num, $num, $num, $num);
printf("%.2f", $num);//小数点保留两位,100.00
printf("%.1f", $num);
printf("The %1\$s says: %2\$s, %2\$s", "dog","bark");//注意:$转义为/$
 ?>



  


  单引号和双引号



<?php
echo"字符串";
echo'字符串';
$a = 10;
echo '$a \n';
echo "$a \n";//双引号中内容会解释,会换行
$a='hello'; $b='php world';
echo $a , $b.'<br />'; //echo可以输出多个字符串;
print $a.$b.'<br />';//printf不能使用逗号,只能用点号分隔
 ?>



  


  转义字符 加\

  \n 换行

  \r 回车

  \t 水平制表符

  \\反斜杠

  \$ 美元符 \" 双引号 \'单引号

  \{1-3} 正则表达式匹配一个用八进制符号表示的字符

  \x{1,2}十六进制

  echo '这个字符串:"I\'m ok"';

  


  字符类型gettype



<?p
$two="2";
$three=3;
$bool=true;
$float=1.2;
echo gettype($two);
echo gettype($three);
echo gettype($bool);
echo gettype($float);
?>



   

  数组



 
<?php
$arr= array("Hello"=>"World", 12=>true);
echo $arr["Hello"];//输出World
echo $arr;//输出1
?>
   


  =>和->

  => 数组的关联符号
  -> 对象属性或方法的操作符
  判断函数
  is_array()
  is_bool()
  is_float()
  is_object()
  is_null::::::::::::::if(is_null($stu['username']) echo"使用is_null";)//输出 使用is_null
  is_resource()
  is_string()
  数组类型转换,(int)$aarr等同理

<?php
$v="cat";
$arr=array("cat", "love");
$arr=array($v);
echo $arr;//输出cat
echo $arr;/undefined offset
echo $arr;//
$s="你好";
$sss=(object)$s;
print $sss->scalar; //输出:你好
var_dump((boolean) "");
 ?>
  注意:转换为object后,就成为该对象的属性,属性名为scalar,可以通过对象引用。
  


  

变量命名

  1、区分大小写
  2、字符或_开头
  引用赋值:变量1变,则变量2也变
  $value1=1;
  $value2= & %value1;或$value2=& %value2;
  全局变量global
  整个php页面都能使用该变量
  静态变量static
  再次调用能保留刚才的值

function myfunc(){
static $mystr;
$mystr .= "哈";
echo $mystr."<br> \n";
}
myfunc();
myfunc();//输出哈哈
myfunc();//输出哈哈哈
?>
 
echo "你的IP地址是 :".$_SERVER['REMOTE_ADDR'];
echo "<br/>";
echo "你的浏览器是 :".$_SERVER['HTTP_USER_AGENT'];
echo'<pre>';
print_r($_ENV);
echo'</pre>';//木有输出啊????
define("STR","admin");//定义常量
echo constant("STR");//获取常量
$a+=5;//$a=$a-5
  字符串和0比较,会先将字符串转换为整数0,则相等了。。。

switch ($user){
case"a":
case"b":
echo "ab"; break;
case "c":
echo "c"; break;
default:
echo "default";break;
}
  foreach
  1\数组2\数组包含键和值

$arr1=array("20","21","22");
foreach ($arr1 as $a){
echo "$a<br/>";
}
$arr2=array("user1"=>"20", "user2"=>"21", "user3"=>"22");
foreach($arr2 as $a=>$b){
echo "$a=>$b<br/>";
}
  $arr=array(1,2,3,4);
  foreach ($arr as &$value)
  $value = $value*2;//$arr 为2,4,6,8

$aa=array(0=>"9016", 1=>"9017", 2=>"9018");
$i=0;
while($aa){
echo $aa[$i];
$i++;
if($i>2){break;}
}
  注意避免死循环
  1、break

$arr=array("red, ", "green, ", "blue, ","yellow, ");
foreach($arr as $value){
if($value=="green, ") break;
echo($value);
}
echo "跳出";// 输出:red 跳出
$arr=array("read, ","green, ","blue, " );
foreach($arr as $value){
if($value=="green, ") continue;
echo($value);
}
echo"跳出";//输出:red blue 跳出
   continue和break是跳出循环,而不是if
  require若包含不存在的文件,会导致致命错误,而include只会产生警告。
  require保证不重复加载
  类

class Dog{
public name;//属性
public weight;
function ear(){
};
}
$dog=new Dog();
$dog->name="小黑";
class Student{
private $name; //字段
private $age;
private $language= "Chinese";
protect function say($name){   //方法
return $name+"speak"+$language;
}
function eat(){
echo "I like meat and beaf!";
}
}
$ob_name=new Class_name();//创建类用new
$stu= new Student();//Student是类 $stu 是实例化对象
 
  private 私有,只能在类内使用
  public 公共,php任何页面都能调用,默认public
  protected只能在类或类的子类中调用
  abstract ???
  final表示只能调用方法,不能重置 final function gett()
  构造函数 __construct()
  析构函数__destruct()
  __get()
  __set()
  autoload()
  


  
页: [1]
查看完整版本: 《PHP编程网络大讲堂》--摘录11/4