实时搜索: php类型有哪些

php类型有哪些

951条评论 4876人喜欢 2020次阅读 321人点赞
php中的类有什么用?和自定义函数有什么区别?能举例最好~!
可以继承是什么意思?? , PHP文档中提到一句:“本文档中使用的伪类型与变量 ”。
我的理解是: mixed 类型只是在文档中起说明作用,在实际的代码环境中是无法使用的。
是不是这样的?

PHP5.6.3环境下执行代码:function test(mixed $a) { echo $a; }
没有报错,但是如果调用该方法就会报错了。
test(123);
Catchable fatal error: Argument 1 passed to test() mus...

Php的变量有几种类型?: 存在8种变量类型,可以分为三类* 标量类型: boolean、integer、float(double)、string* 复合类型: array、object* 特殊类型: resource、NULL

php中的类有什么用?和自定义函数有什么区别?: 请看PHP手册18章,里面的内容你看了就明白。

第 18 章 类与对象(PHP 4)
目录

继承
构造函数
范围解析操作符(::)
parent
序列化对象 - 会话中的对象
魔术函数 __sleep 和 __wakeup
构造函数中的引用
对象的比较



类是变量与作用于这些变量的函数的集合。使用下面的语法定义一个类: 

<?php
class Cart {
    var $items;  // 购物车中的物品

    // 将 $num 个 $artnr 物品加入购物车

    function add_item($artnr, $num) {
        $this->items[$artnr] += $num;
    }

    // 将 $num 个 $artnr 物品从购物车中取出

    function remove_item($artnr, $num) {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } elseif ($this->items[$artnr] == $num) {
            unset($this->items[$artnr]);
            return true;
        } else {
            return false;
        }
    }
}
?> 

上面的例子定义了一个 Cart 类,这个类由购物车中的商品构成的数组和两个用于从购物车中添加和删除商品的函数组成。 

警告
不能将一个类的定义分割到多个文件中。也不能将一个类的定义分割到多个 PHP 块中,除非该分割是在一个方法声明内部。以下用法将不起作用: 

<?php
class test {
?>
<?php
    function test() {
        print 'OK';
    }
}
?> 

但是以下用法是可以的: 

<?php
class test {
    function test() {
        ?>
        <?php
        print 'OK';
    }
}
?> 

以下警告仅用于 PHP 4。 

小心
名称 stdClass 已经被 Zend 使用并保留。不能在 PHP 代码中定义名为 stdClass 的类。 

小心
函数名 __sleep 和 __wakeup 在 PHP 类中是魔术函数。除非想要与之联系的魔术功能,否则在任何类中都不能以此命名函数。 

小心
PHP 将所有以 __ 开头的函数名保留为魔术函数。除非想要使用一些见于文档中的魔术功能,否则建议不要在 PHP 中将函数名以 __ 开头。 

在 PHP 4 中,var 变量的值只能初始化为常量。用非常量值初始化变量,需要一个初始化函数,该函数在对象被创建时自动被调用。这样一个函数被称之为构造函数(见下面)。 

<?php
/* PHP 4 中不能这样用 */
class Cart {
    var $todays_date = date("Y-m-d");
    var $name = $firstname;
    var $owner = 'Fred ' . 'Jones';
    /* 不过包含有常量的数组可以 */
    var $items = array("VCR", "TV");
}

/* 应该这样进行 */
class Cart {
    var $todays_date;
    var $name;
    var $owner;
    var $items = array("VCR", "TV");
    function Cart() {
        $this->todays_date = date("Y-m-d");
        $this->name = $GLOBALS['firstname'];
        /* etc. . . */
    }
}
?> 
类也是一种类型,就是说,它们是实际变量的蓝图。必须用 new 运算符来创建相应类型的变量。 

<?php
$cart = new Cart;
$cart->add_item("10", 1);

$another_cart = new Cart;
$another_cart->add_item("0815", 3);
?> 
上述代码创建了两个 Cart 类的对象 $cart 和 $another_cart,对象 $cart 的方法 add_item() 被调用时,添加了 1 件 10 号商品。对于对象 $another_cart,3 件 0815 号商品被添加到购物车中。 

$cart 和 $another_cart 都有方法 add_item(),remove_item() 和一个 items 变量。它们都是明显的函数和变量。可以把它们当作文件系统中的某些类似目录的东西来考虑。在文件系统中,可以拥有两个不同的 README.TXT 文件,只要不在相同的目录中。正如从为了根目录访问每个文件需要输入该文件的完整的路径名一样,必须指定需要调用的函数的完整名称:在 PHP 术语中,根目录将是全局名字空间,路径名符号将是 ->。因而,名称 $cart->items 和 $another_cart->items 命名了两个不同的变量。注意变量名为 $cart->items,不是 $cart->$items,那是因为在 PHP 中一个变量名只有一个单独的美元符号。 

<?php
// 正确,只有一个 $
$cart->items = array("10" => 1);

// 不正确,因为 $cart->$items 变成了 $cart->""
$cart->$items = array("10" => 1);

// 正确,但可能不是想要的结果:
// $cart->$myvar 变成了 $cart->items
$myvar = 'items';
$cart->$myvar = array("10" => 1);
?> 
在定义类的时候,无法得知将使什么名字的对象来访问:在编写 Cart 类时,并不知道之后对象的名称将会命名为 $cart 或者 $another_cart。因而你不能在类中使用 $cart->items。然而为了类定义的内部访问自身的函数和变量,可以使用伪变量 $this 来达到这个目的。$this 变量可以理解为“我自己的”或者“当前对象”。因而 '$this->items[$artnr] += $num' 可以理解为“我自己的物品数组的 $artnr 计数器加 $num”或者“在当前对象的物品数组的 $artnr 计数器加 $num”。 

注意: 伪变量 $this 通常未定义,如果其所在的方法是被静态调用的话。但这不是个严格规定:如果一个方法被从另一个对象内静态调用的话,则 $this 会被定义。此时 $this 的值是那个发出调用的对象。用下例演示: 

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this is defined (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this is not defined.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}

$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?> 
上例将输出:

$this is defined (a)
$this is not defined.
$this is defined (b)
$this is not defined.

     

注意: 有一些不错的函数用来处理类和对象。应该关注一下类/对象函数。 

PHP mixed类型是什么?: 混合类型,表示类型可以为多种,例如参数可以是数组,对象或字符串,,,,

php伪类型有什么用?: mixed 说明一个参数可以接受多种不同的(但不一定是所有的)类型。

例如 gettype() 可以接受所有的 PHP 类型,str_replace() 可以接受字符串和数组。

php-wed php-worker 这些类型什么意思?: php-web和php-worker是PHP框架的类型,一般用于云引擎上面,例如百度的BAE就有这两种类型,其中php-web用于传统web类型的HTTP应用,而php-worker用于后台任务,如果你要建站的话建议用php-web类型。

判断 php 对象类型 是否有方法: 我们的中文真是博大精深呀,你的问题竟然隐藏两种含义:
1、如果是判断对象类型:
<?php
$a = 123;
//$a = function (){};
var_dump(gettype($a));
?>
使用自带函数: gettype
2、如果判断对象是否存在什么方法
<?php
class test {
function t(){
}
}
$a = new test();
var_dump(method_exists($a,'t'));
?>
使用函数:method_exists

PHP关于通过递归函数显示所有分类的问题: 首先需要搞明白你的数据库结构,你的档案类别数据库表 dangan_class 是不是三字段:id、name、f_id,其中id为主键,f_id为自关联的外键,表示上一分类,0表示最上级分类,对不对?

树状枚举出所有类别的代码可以这样:
<?php
function zilei($fid,$level){
$sql="select id,name from dangan_class where f_id=$fid";
$query=mysql_query($sql);
while(list($id,$name)=mysql_fetch_array($query)){
echo str_repeat("==",$level),$name,"<a href='?del=$id'>删除</a><br>\n";
zilei($id,$level+1);
}

mysql_free_result($query);

}
zilei(0,0);

?>

为了结构简单,我上面只做了删除的代码,修改的部分你自行加上,你也可以先调试好了删除的代码再加。

代码里面的==是为了缩进,你可以换为全角的空白,或者其它符号。

PHP无限分类,js无限联动: php先是成数组,然后传递给js

举个例子
php的
<?
$array = array(
array(1,'类别1',0),
array(2,'类别1',1),
array(3,'类别1',2),
array(4,'类别1',1),
//分别是 自身id(唯一) 名称 父id( 0的时候是跟)

)

?>
<script>
var array= eval(<? echo json_encode($array) ?>)
//s_id 是自身id 调用的时候传入0 从跟开始
function tree(s_id)
{
这里遍历array数组,查找父id == s_id的匹配
array(1,'类别1',0), 这条符合 0
找到匹配后查找当前id 1 有没有儿子, 有儿子的就是能展开的,继续调用 tree(id) 不断的去递归
没儿子的不展开

}

<script>

  • 2017做什么生意赚钱

    PHP读文件出错Warning: ...... failed to open stream: Invalid argument in ......: 下面的都没注意到一个细节!Warning: file_get_contents(html/introduction.html ) [function.file-get-contents]: failed to ope...

    650条评论 4280人喜欢 5551次阅读 465人点赞
  • p2p犯罪会判多少年

    sql语句中using index是什么意思: USING INDEX可以让你在创建主键、唯一性约束的时候使用指定的索引或创建索引、或修改索引的存储结构。官方解释:Using Indexes to Enforce ConstraintsWhen defining ...

    262条评论 5797人喜欢 4097次阅读 414人点赞
  • 云盘哪个号用

    VB中text.index是什么意思?: VB中.Index是控件数组的某个控件的编号。当建立了Text控件的控件数组后,就存在.Index这个属性。Index 属性(控件数组),返回或设置唯一地标识控件数组中一个控件的编号。仅当控件是控件数组的元素时是有效...

    339条评论 5848人喜欢 4992次阅读 309人点赞
  • mac游戏在哪下载

    关于EXCEL中,INDIRECT和MATCH函数的使用: INDIRECT函数是引用函数,何为引用?举个例子,有一EXCEL表,A列的第一行的值是"B5",而B列第五行的值是"ABC",那么INDIRECT($A$1)返回的值就是B列第五行的值。也就是类似其他编程语言中的设...

    767条评论 2543人喜欢 1095次阅读 387人点赞
  • iphone音乐如何删除

    19年五月份买了两台格力T爽柜机,三台俊悦,没有随机条码,不给保修,也没有补贴,找谁说理去啊!!: 只要是正规的格力专卖店或者大卖场购买的,没有发票也绝对有机组条形码,如果没有肯定是窜货机,条码被人故意弄掉了,没有条码是录不了系统,系统查不到自然不给保修,更别说补贴了。 ...

    812条评论 1371人喜欢 3130次阅读 652人点赞
  • nba2kol谁的投篮包

    infinite在雪地里拍的mv的歌是什么: 确定是雪地?倒是有在白色沙滩(室内沙滩)的场景拍过mv,场景也很明亮。是infinite的日本单曲《24时间》的mv。 ...

    853条评论 6314人喜欢 5937次阅读 524人点赞
  • 昆明哪里可以帮宝宝取名

    日语歌 ,开头是i want you i need you i love you: 日本AKB48组合的ヘビーローテーション(尽力旋转)「ヘビーローテーション」 作词∶秋元康 作曲∶山崎燿 歌∶AKB48 I want you! I need you! I love you! 头の中 ガンガン鸣って...

    601条评论 1603人喜欢 6230次阅读 382人点赞