php(1)—基础

 

  • 数据类型

  • bool

-1 和其它非零值(不论正负)一样,被认为是 TRUE

而只有空和零会被认为false

  • float
//浮点数比较
$a = 1.23456789;
$b = 1.23456780;
$epsilon = 0.0000001;
if(abs($a-$b) < $epsilon) {
    echo "true";
}
  •  heredoc结构
echo <<<EOT
My name is "$name". I am printing some $foo->foo.  #foo类中的一个属性
Now, I am printing some {$foo->bar[1]}.  #foo类中数组元素
This should print a capital 'A': \x41
EOT;

在红字之间的 变量将被替换,可以直接转义

  • 字符串
连接
$x
="5"; $y="7"; $z=$x.$y; echo $z; //57 $x="5"; $y="7"; $z=$x + $y; echo $z; //12

获取长度
echo strlen("Hello world!");  //12
echo strpos("Hello world!","world"); #6 索引从0开始
echo(022); //0开头代表八进制 0x十六进制 0b二进制
echo (int) ( (0.1+0.7) * 10 ); // 显示 7!,解决方法去掉前面的int

// 在单引号字符串中的变量和特殊字符的转义序列将不会被替换
echo '\t ww';
echo "\t ee";#\t ww ee
 

可以在字符串中直接应用变量

$a = "f";
echo "I'm$a";
  • 数组
$arr = array('apple'=>"苹果",'banana'=>"香蕉");
$arr0=$arr["apple"];
if( isset($arr0)) //isset判断变量是否声明
{print_r($arr0);  #苹果
}
$cars=array("Volvo","BMW","SAAB");
echo "My car is a {$cars[0]}";

获取数组的长度
echo count($cars);

  • 对象
class foo
{
    function do_foo()
    {
        echo "Doing foo."; 
    }
}
$bar = new foo;
$bar->do_foo();


class Car { var $color; //类的属性 在对象中函数的定义需要用var var $Size; function Car($color="green",$size=2) { //构造方法 $this->color = $color; $this->Size = $size; } function what_color() { return $this->color; } } function print_vars($obj) { //get_object_vars获取类中所有属性 foreach (get_object_vars($obj) as $prop => $val) { echo "\t$prop = $val\n"; } } $herbie = new Car("white"); //实例化 echo "\herbie: Properties\n"; //打印提示 print_vars($herbie); //调用方法打印所有属性
echo $herbie->Size;  //打印对象属性值
  • Local 和 Global 作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

$x=5;
$y=10;
$z=1;
function myTest() {
    $a="kk";
    global $x,$y;    //获取全局变量
    $y=$x+$y;
    echo  $GLOBALS['z']." ";    //$GLOBALS[index] 的数组中存储了所有的全局变量
}
myTest();
echo $y; // 输出 15 
  • static变量
function myTest() {
    static $x=0;
    echo $x." ";
    $x++;
  }
myTest();
myTest();
myTest();

每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。

该变量仍然是函数的局部变量。

  • 常量
// 定义对大小写不敏感的常量
define("GREETING", "Welcome to W3School.com.cn!", true);
echo GREETING;
echo "<br>";
// 会输出常量的值
echo greeting;
  •  foreach 循环
$colors = array("red","green","blue","yellow"); 
foreach ($colors as $value) {
  echo "$value <br>";
}
  • 函数
function setHeight($minheight=50) {  //设置默认值
  echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // 将使用默认值 50
setHeight(135);
setHeight(80);
  • 数组排序
对数组进行升序排序 - sort()
$numbers=array(3,5,1,22,11);
sort($numbers);
//遍历结果:1,3,5,11,22

对数组进行降序排序 - rsort()
根据值对数组进行升序排序 - asort()
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);

根据键对数组进行升序排序 - ksort()
根据值对数组进行降序排序 - arsort()
根据键对数组进行降序排序 - krsort()
  •  超全局变量

$GLOBALS —引用全局作用域中可用的全部变量(同上)

$x = 30;
$y = 65; 
function addition() {
   $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;

$_SERVER —保存关于报头、路径和脚本位置的信息。

echo $_SERVER['SERVER_ADDR'];    //127.0.0.1
echo "<br>";

$_REQUEST 用于收集 HTML 表单提交的数据。

第一个页面index.html
<form method="post" action="test.php">
    Name: <input type="text" name="fname">
    <input type="submit">
</form>
第二个页面test.php 可以获取到传值
$name = $_REQUEST['fname'];
echo $name;

$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量

$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。

第一个页面index.php
<a href="test.php?subject=PHP&who=I">测试 $GET</a>
第二个页面test.php
echo  $_GET['who'] ." want to study ". $_GET['subject'] ;

还有  $_FILES、$_ENV、$_COOKIE、$_SESSION这些

  • 魔术常量 
__LINE__文件中的当前行号
echo '这是第 " '  . __LINE__ . ' " 行';

__FILE__文件的完整路径和文件名。
echo '该文件位于 " '  . __FILE__ . ' " ';

__DIR__文件所在的目录
echo '该文件位于 " '  . __DIR__ . ' " ';

__FUNCTION__函数名称
function test() {
    echo  '函数名为:' . __FUNCTION__ ;
}
test();

__CLASS__类的名称
class test {
    function _print() {
        echo '类名为:'  . __CLASS__ . "<br>";
        echo  '函数名为:' . __FUNCTION__ ;
    }
}
$t = new test();
$t->_print();

__TRAIT__代码复用
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。
其行为 MyHelloWorld 类中定义的方法一致。
优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); //Hello World! __NAMESPACE__当前命名空间的名称 echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject"

 

posted on 2018-08-14 22:27  石墨方  阅读(258)  评论(0编辑  收藏  举报

导航