微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

第一天-基础部分

有趣的点

echo和print

echo比print速度快且echo没有返回值,而print有返回值为1。
echo允许输出一个或多个字符串,而print只允许输出一个字符串


echo "这是一个", "字符串,", "使用了", "多个", "参数。";

EOF(heredoc)使用说明

结尾必须不带空格


<?PHP
    $name = "hello";
    echo <<<EOF

        "abc"$name
        "123"

EOF;
?>


PHP数据类型

  1. String(字符串)
  2. Integer(整型)
  3. Float(浮点型)
  4. Boolean(布尔型)
  5. Array(数组)
  6. Object(对象)
  7. NULL(空值)
  8. Resource(资源类型)

PHP类型比较

==

比较值不比较类型

===

比较值和类型

0, null, bool, ''

PHP_EOL

换行符

echo PHP_EOL;

PHP 常量

使用时不能在前面加$符号,否则会解析为变量

设置

bool define(string $name, mixed $value[, bool $case insensitive = false])
  • name:必选参数,常量名称,即标志符。
  • value:必选参数,常量的值。
  • case_insensitive :可选参数,如果设置为TRUE,该常量则大小写不敏感。认是大小写敏感的。
define("GREETING", "Hello, world!", true);
echo GREETING;

PHP运算符

运算符 作用
<> 不等于
!= 不等于
!== 绝对不等于
xor 异或(如果x和y中有且仅有一个为true,则返回true)
$c = $a <=> $b 若$a > \(b则\)c为1
若$a == \(b则\)c为0
若$a < \(b则\)c为-1

PHP数组

数值数组

1. 
$cars = array("Volvo", "BMW", "Toyota");

2. 
$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";

遍历数值数组

for($x = 0; $x < count($cars); $x++){
    echo $cars[$x];
    echo "<br>";
}

关联数组


1. 
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");

2. 
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";

遍历关联数组


foreach($age as $x=>$x_value){
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}

PHP数组排序

bool function($array)

函数 作用
sort() 对数组进行升序排列
rsort() 对数组进行降序排列
asort() 根据关联数组的值,对数组进行升序排列
ksort() 根据关联数组的键,对数组进行升序排列
arsort() 根据关联数组的值,对数组进行降序排列
krsort() 根据关联数组的键,对数组进行降序排列

PHP超级全局变量

PHP中预定义了几个超级全局变量(superglobals),这意味着它们在一个脚本的全部作用域中都可用,无需特殊说明便可在函数及类中使用。

$GLOBALS

包含了全部变量的全局组合数组,变量的名字就是数组的键

实例:

<?PHP 
$x = 75; 
$y = 25;
 
function addition() 
{ 
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
 
addition(); 
echo $z; 
?>

print_r($GLOBALS);

$_SERVER

包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。

实例:

<?PHP 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

$_GET

$_POST

$_REQUEST

$_FILES

$_ENV

$_SESSION

foreach循环

foreach ($array as $value)
{
    要执行代码;
}

foreach ($array as $key => $value)
{
    要执行代码;
}

PHP魔术常量

LINE

文件中的当前行号

echo '这是第 "' . __LINE__ . '"行';

FILE

文件的完整路径和文件

echo '该文件位于 "' . __FILE__ . '"';

DIR

文件所在的目录

FUNCTION

返回该函数被定义时的名字

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

CLASS

返回该类被定义时的名字

TRAIT

pass

METHOD

类的方法名,返回该方法被定义时的名字

NAMESPACE

当前命名空间的名称

PHP面向对象

构造函数

function __construct(...){...}

析构函数

function __destructor(...){...}

继承

class Child extends Parent{...}

接口

<?PHP

// 声明一个'iTemplate'接口
interface iTemplate
{
    public function setvariable($name, $var);
    public function getHtml($template);
}


// 实现接口
class Template implements iTemplate
{
    private $vars = array();
  
    public function setvariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
  
    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }
 
        return $template;
    }
}

抽象类

<?PHP
abstract class AbstractClass
{
 // 强制要求子类定义这些方法
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

    // 普通方法(非抽象方法)
    public function printOut() {
        print $this->getValue() . PHP_EOL;
    }
}

class ConcreteClass1 extends AbstractClass
{
    protected function getValue() {
        return "ConcreteClass1";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass1";
    }
}

class ConcreteClass2 extends AbstractClass
{
    public function getValue() {
        return "ConcreteClass2";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') . PHP_EOL;

$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') . PHP_EOL;
?>

结果:
ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

Final关键字

如果父类中的方法被声明为final,则子类无法覆盖该方法。如果一个类被声明为final,则不能被继承。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐