Saturday, September 29, 2012

Difference between session_register and $_SESSION[] in phpsession_register and $_SESSION[] in php




We can use either session_register or $_SESSION for registering session variable in php.

Find below the difference between both of them. 


session_register() is a function and $_SESSION is a superglobal array.

session_register() is used to register a session variable and it works only when register_globals is turned on. (Turning ON register_globals will create mesh-ups, but some applications (e.g OScommerce) requires turning ON of register_globals)
But $_SESSION works even when register_globals is turned off.

If session_start() was not called before session_register() is called, an implicit call to session_start() with no parameters will be made. But $_SESSION requires session_start() before use.

session_register function returns boolean value and $_SESSION returns string value

session_register() function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0.


We know that Webpages are getting displayed using stateless Protocol.
So there should be someway for keeping the session of the user navigating the webpages within a website.

Session variables and Cookie variables can be used for this purpose.
Basically Session variables are maintained by webserver. (i-e)Physically the value of any Session variable will be written to a file located in the web server.

In php, we can set/use the session variable using $_SESSION. Say for example, if we need to put the user email (e.g $email) in session, we can use it as $_SESSION['email'] whose value should be set as $_SESSION['email']=$email.

Whenever assigning this session variable, a file will be written to the web server at location specified by session_path variable in php.ini file.

Suppose 1000 users are using your website, there will be 1000 files created for storing one session variable.

So it will become a big memory issue if you are not managing the session properly. (i-e) we should unset the session variables during logout. Appropriate session timeout value should be specified to enable automatic expiration of the session if the user forgets to logout. And also we need to take additional care to manage session if security is more important for your website.

Or alternatively we can use cookie variables which are stored by the web browser in the users machine. As the cookie variables are stored in the client machine, it can be available till it gets deleted either by browser setting, or by the code or by the user manually.

Since cookie variables can live even after closing the browser session, it can be very useful for improving user experience. (i-e) Lot of data related to user preferences can be stored in the cookie. So whenever the same user logs in, his previous settings can be applied automatically by using these cookie values. For example if the user allows the website to store his password in cookie variable, he can log in to the website without typing his password again.

In php, cookie variables can be set using setcookies function. 
But anyway, privacy is important for you, you can restrict the cookies by changing the browser settings.
More Articles...

Friday, September 28, 2012

Thursday, September 27, 2012

PHP and MySQL Stored Procedure Exec Problem

  • <?php
  • $Server = "127.0.0.1";
  • $DataBase = "tedt";
  • $UserName = "root";
  • $PassWord = "124@#";
  • $Conn = mysqli_connect($host, $UserName, $PassWord);
  • if(!$Conn)
  • {
  • die("Could not connect to server : " . mysqli_error());
  • }
  • else
  • {
  • mysqli_select_db($Conn,$DataBase) or die("Could not connect to database");
  • }
  • ?>
  • <?php
  • print "Procedure #1";
  • $res= $Conn->query("CALL storepro;");
  • print_r($res) ;
  • ?>

    Monday, September 24, 2012

    json using php tutorial

    After reading this post, you will be able to understand, work and test JSON code with PHP.
    There are already lots of tutorials out there on handling JSON with PHP, but most of them don't go much deeper than throwing an array against json_encode and hoping for the best. This article aims to be a solid introduction into JSON and how to handle it correctly in combination with PHP. Also, readers who don't use PHP as their programming language can benefit from the first part that acts as a general overview on JSON.
    JSON (JavaScript Object Notation) is a data exchange format that is both lightweight and human-readable (like XML, but without the bunch of markup around your actual payload). Its syntax is a subset of the JavaScript language that was standardized in 1999. If you want to find out more, visit the official website.
    The cool thing about JSON is that you can handle it natively in JavaScript, so it acts as the perfect glue between server- and client-side application logic. Also, since the syntactical overhead (compared to XML) is very low, you need to transfer less bytes of ther wire. In modern web stacks, JSON has pretty much replaced XML as the de-factor payload format (aside from the Java world I suppose) and client side application frameworks like backbone.js make heavy use of it inside the model layer.
    Before we start handling JSON in PHP, we need to take a short look at the JSON specification to understand how it is implemented and what's possible.

    Introducing JSON

    Since JSON is a subset of the JavaScript language, it shares all of its language constructs with its parent. In JSON, you can store unordered key/value combinations in objects or use arrays to preserve the order of values. This makes it easy to parse and to read, but also has some limitations. Since JSON only defines a small amount of data types, you can't transmit types like dates natively (you can, but you need to transform them into a string or a unix timestamp as an integer).
    So, what datatypes does JSON support? It all boils down to strings, numbers, booleans and null. Of course, you can also supply objects or arrays as values.
    Here's a example JSON document:
    1. {
    2. "title": "A cool blog post",
    3. "clicks": 4000,
    4. "children": null,
    5. "published": true,
    6. "comments": [
    7. {
    8. "author": "Mister X",
    9. "message": "A really cool posting"
    10. },
    11. {
    12. "author": "Misrer Y",
    13. "message": "It's me again!"
    14. }
    15. ]
    16. }
    It contains basically everything that you can express through JSON. As you can see no dates, regexes or something like that. Also, you need to make sure that your whole JSON document is encoded in UTF-8. We'll see later how to ensure that in PHP. Due to this shortcomings (and for other good reasons) BSON(Binary JSON) was developed. It was designed to be more space-efficient and provides traversability and extensions like the date type. Its most prominent use case is MongoDB, but honestly I never came across it somewhere else. I recommend you to take a short look at the specification if you have some time left, since I find it very educating.
    Since PHP has a richer type handling than JSON, you need to prepare yourself to write some code on both ends to transform the correct information apart from the obligatory encoding/decoding step. For example, if you want to transport date objects, you need to think if you can just send a unix timestamp over the wire or maybe use a preformatted date string (like strftime).

    Encoding JSON in PHP

    Some years ago, JSON support was provided through the json pecl extension. Since PHP 5.2, it is included in the core directly, so if you use a recent PHP version you should have no trouble using it.
    Note: If you run an older version of PHP than 5.3, I recommend you to upgrade anyway. PHP 5.3 is the oldest version that is currently supported and with the latest PHP security bugs found I would consider it critical to upgrade as soon as possible.
    Back to JSON. With json_encode, you can translate anything that is UTF-8 encoded (except resources) from PHP into a JSON string. As a rule of thumb, everything except pure arrays (in PHP this means arrays with an ordered, numerical index) is converted into an object with keys and values.
    The method call is easy and looks like the following:
    1. json_encode(mixed $value, int $options = 0);
    An integer for options you might ask? Yup, that's called a bitmask. We'll cover them in a separate part a little bit later. Since these bitmask options change the way the data is encoded, for the following examples assume that we use defaults and don't provide custom params.
    Let's start with the basic types first. Since its so easy to grasp, here's the code with short comments on what was translated:
    1. <?php
    2. // Returns: ["Apple","Banana","Pear"]
    3. json_encode(array("Apple", "Banana", "Pear"));
    4.  
    5. // Returns: {"4":"four","8":"eight"}
    6. json_encode(array(4 => "four", 8 => "eight"));
    7.  
    8. // Returns: {"apples":true,"bananas":null}
    9. json_encode(array("apples" => true, "bananas" => null));
    10. ?>
    How your arrays are translated depends on your indexes used. You can also see that json_encode takes care of the correct type conversion, so booleans and null are not transformed into strings but use their correct type. Let's now look into objects:
    1. <?php
    2. class User {
    3. public $firstname = "";
    4. public $lastname = "";
    5. public $birthdate = "";
    6. }
    7.  
    8. $user = new User();
    9. $user->firstname = "foo";
    10. $user->lastname = "bar";
    11.  
    12. // Returns: {"firstname":"foo","lastname":"bar"}
    13. json_encode($user);
    14.  
    15. $user->birthdate = new DateTime();
    16.  
    17. /* Returns:
    18.   {
    19.   "firstname":"foo",
    20.   "lastname":"bar",
    21.   "birthdate": {
    22.   "date":"2012-06-06 08:46:58",
    23.   "timezone_type":3,
    24.   "timezone":"Europe\/Berlin"
    25.   }
    26.   }
    27. */
    28. json_encode($user);
    29. ?>
    Objects are inspected and their public attributes are converted. This happens recursively, so in the example above the public attributes of the DateTime object are also translated into JSON. This is a handy trick if you want to easly transmit datetimes over JSON, since the client-side can then operate on both the actual time and the timezone.
    1. <?php
    2. class User {
    3. public $pub = "Mister X.";
    4. protected $pro = "hidden";
    5. private $priv = "hidden too";
    6.  
    7. public $func;
    8. public $notUsed;
    9.  
    10. public function __construct() {
    11. $this->func = function() {
    12. return "Foo";
    13. };
    14. }
    15. }
    16.  
    17. $user = new User();
    18.  
    19. // Returns: {"pub":"Mister X.","func":{},"notUsed":null}
    20. echo json_encode($user);
    21. ?>
    Here, you can see that only public attributes are used. Not initialized variables are translated to null while closures that are bound to a public attribute are encoded with an empty object (as of PHP 5.4, there is no option to prevent public closures to be translated).

    The $option bitmasks

    Bitmasks are used to set certain flags on or off in a function call. This language pattern is commonly used in C and since PHP is written in C this concept made it up to some PHP function arguments as well. It's easy to use: if you want to set an option, just pass the constant as an argument. If you want to combine two or more options, combine them with the bitwise OR operation |. So, a call to json_encode may look like this:
    1. <?php
    2. // Returns: {"0":"Starsky & Hutch","1":123456}
    3. json_encode(array("Starsky & Hutch", "123456"), JSON_NUMERIC_CHECK | JSON_FORCE_OBJECT);
    4. ?>
    JSON_FORCE_OBJECT forces the array to be translated into an object and JSON_NUMERIC_CHECK converts string-formatted numbers to actual numbers. You can find all bitmasks (constants) here. Note that most of the constants are available since PHP 5.3 and some of them were added in 5.4. Most of them deal with how to convert characters like < >, & or "". PHP 5.4 provides a JSON_PRETTY_PRINT constant that may you help during development since it uses whitespace to format the output (since it adds character overhead, I won't enable it in production of course).

    Decoding JSON in PHP

    Decoding JSON is as simple as encoding it. PHP provides you a handy json_decode function that handles everything for you. If you just pass a valid JSON string into the method, you get an object of type stdClass back. Here's a short example:
    1. <?php
    2. $string = '{"foo": "bar", "cool": "attr"}';
    3. $result = json_decode($string);
    4.  
    5. // Result: object(stdClass)#1 (2) { ["foo"]=> string(3) "bar" ["cool"]=> string(4) "attr" }
    6. var_dump($result);
    7.  
    8. // Prints "bar"
    9. echo $result->foo;
    10.  
    11. // Prints "attr"
    12. echo $result->cool;
    13. ?>
    If you want to get an associative array back instead, set the second parameter to true:
    1. <?php
    2. $string = '{"foo": "bar", "cool": "attr"}';
    3. $result = json_decode($string, true);
    4.  
    5. // Result: array(2) { ["foo"]=> string(3) "bar" ["cool"]=> string(4) "attr" }
    6. var_dump($result);
    7.  
    8. // Prints "bar"
    9. echo $result['foo'];
    10.  
    11. // Prints "attr"
    12. echo $result['cool'];
    13. ?>
    If you expect a very large nested JSON document, you can limit the recursion depth to a certain level. The function will return null and stops parsing if the document is deeper than the given depth.
    1. <?php
    2. $string = '{"foo": {"bar": {"cool": "value"}}}';
    3. $result = json_decode($string, true, 2);
    4.  
    5. // Result: null
    6. var_dump($result);
    7. ?>

    Tuesday, September 18, 2012

    curl service example in php

    <?php
    
    $ch = curl_init("http://rss.news.yahoo.com/rss/oddlyenough");
    $fp = fopen("example_homepage.html", "w");
    
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    
    $xml = simplexml_load_file('example_homepage.html');
    print "<ul>\n";
    foreach ($xml->channel->item as $item){
      print "<li>$item->title</li>\n";
    }
    print "</ul>";
    
    ?>

    top core php interview questions and answers

    If experienced Most be read two link (most of the interviewer asked those question and answer)


    For starting /beginner  interview you can read all those interview questions and answers
    1) What is PHP?
    PHP is a web language based on scripts that allows developers to dynamically create generated web pages.
    2) What does the initials of PHP stand for?
    PHP means PHP: Hypertext Preprocessor.
    3) Which programming language does PHP resemble to?
    PHP syntax resembles Perl and C
    4) What does PEAR stands for?
    PEAR means “PHP Extension and Application Repository”. it extends PHP and provides a higher level of programming for web developers.
    5) What is the actually used PHP version?
    Version 5 is the actually used version of PHP.
    6) How do you execute a PHP script from the command line?
    Just use the PHP command line interface (CLI) and specify the file name of the script to be executed as follows:
    ?
    1
    php script.php
    7) How to run the interactive PHP shell from the command line interface?
    Just use the PHP CLI program with the option -a as follows:
    ?
    1
    php -a
    8 What are the correct and the most two common way to start and finish a PHP block of code?
    The two most  common ways to start and finish a PHP script are: <?php [   ---  PHP code---- ] ?> and <? [---  PHP code  ---] ?>
    9) How can we display the output directly to the browser?
    To be able to display the output directly to the browser, we have to use the special tags <?= and ?>.
    10) What is the main difference between PHP 4 and PHP 5?
    PHP 5 presents many additional OOP (Object Oriented Programming) features.
    11) Is multiple inheritance supported in PHP?
    PHP includes only single inheritance, it means that a class can be extended from only one single class using the keyword ‘extended’.
    12) What is the meaning of a final class and a final method?
    ‘final’ is introduced in PHP5. Final class means that this class cannot be extended and a final method cannot be overrided.
    13) How comparison of objects is done in PHP5?
    We use the operator ‘==’ to test is two object are instanced from the same class and have same attributes and equal values. We can test if two object are refering to the same instance of the same class by the use of the identity operator ‘===’.
    14) How can PHP and HTML interact?
    It is possible to generate HTML through PHP scripts, and it is possible to pass informations from HTML to PHP.
    15) What type of operation is needed when passing values through a form or an URL?
    If we would like to pass values througn a form or an URL then we need to encode and to decode them using htmlspecialchars() and urlencode().
    16) How can PHP and Javascript interact?
    PHP and Javascript cannot directly interacts since PHP is a server side language and Javascript is a client side language. However we can exchange variables since PHP is able to generate Javascript code to be executed by the browser and it is possible to pass specific variables back to PHP via the URL.
    17) What is needed to be able to use image function?
    GD library is needed to be able execute image functions.
    18) What is the use of the function ‘imagetypes()’?
    imagetypes() gives the image format and types supported by the current version of GD-PHP.
    19) What are the functions to be used to get the image’s properties (size, width and height)?
    The functions are getimagesize() for size, imagesx() for width and imagesy() for height.
    20) How failures in execution are handled with include() and require() functions?
    If the function require() cannot access to the file then it ends with a fatal error. However, the include() function gives a warning and the PHP script continues to execute.
    21) What is the main difference between require() and require_once()?
    require() and require_once() perform the same task except that the second function checks if the PHP script is already included or not before executing it.
    (same for include_once() and include())
    22) How can I display text with a PHP script?
    Two methods are possible:
    ?
    1
    2
    3
    4
    <?php
    echo "Method 1";
    print "Method 2";
    ?>
    23) How can we display information of a variable and readable by human with PHP?
    To be able to display a human-readable result we use print_r().
    24) How is it possible to set an infinite execution time for PHP script?
    The set_time_limit(0) added at the beginning of a script sets to infinite the time of execution to not have the PHP error ‘maximum execution time exceeded’.It is also possible to specify this in the php.ini file.
     25) What does the PHP error ‘Parse error in PHP – unexpected T_variable at line x’ means?
    This is a PHP syntax error expressing that a mistake at the line x stops parsing and executing the program.
    26) What should we do to be able to export data into an Excel file?
    The most common and used way is to get data into a format supported by Excel. For example, it is possible to write a .csv file, to choose for example comma as separator between fields and then to open the file with Excel.
    27) What is the function file_get_contents() usefull for?
    file_get_contents() lets reading a file and storing it in a string variable.
    28) How can we connect to a MySQL database from a PHP script?
    To be able to connect to a MySQL database, we must use mysql_connect() function as follows:
    ?
    1
    2
    3
    4
    <?php
    $database = mysql_connect("HOST", "USER_NAME", "PASSWORD");
    mysql_select_db("DATABASE_NAME",$database);
    ?>
    29) What is the function mysql_pconnect() usefull for?
    mysql_pconnect() ensure a persistent connection to the database, it means that the connection do not close when the the PHP script ends.
    30) How the result set of Mysql be handled in PHP?
    The result set can be handled using mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object or mysql_fetch_row.
    31) How is it possible to know the number of rows returned in result set?
    The function mysql_num_rows() returns the number of rows in a result set.
    32) Which function gives us the number of affected entries by a query?
    mysql_affected_rows() return the number of entries affected by an SQL query.
    33) What is the difference between mysql_fetch_object() and mysql_fetch_array()?
    The mysql_fetch_object() function collects the first single matching record where mysql_fetch_array() collects all matching records from the table in an array.
    34) How can we access the data sent through the URL with the GET method?
    In order to access the data sent via the GET method, we you use $_GET array like this:
    www.url.com?var=value
    $variable = $_GET["var"]; this will now contain ‘value’
    35) How can we access the data sent through the URL with the POST method?
    To access the data sent this way, you use the $_POST array.
    Imagine you have a form field called ‘var’ on the form, when the user clicks submit to the post form, you can then access the value like this:
    $_POST["var"];
    36) How can we check the value of a given variable is a number?
    It is possible to use the dedicated function, is_numeric() to check whether it is a number or not.
    37) How can we check the value of a given variable is alphanumeric?
    It is possible to use the dedicated function, ctype_alpha() to check whether it is an alphanumeric value or not.
    38) How do I check if a given variable is empty?
    If we want to check whether a variable has a value or not, it is possible to use the empty() function.
    39) What does the unlink() function means?
    The unlink() function is dedicated for file system handling. It simply deletes the file given as entry.
    40) What does the unset() function means?
    The unset() function is dedicated for variable management. It will make a variable undefined.
    The behavior of unset() inside of a function can vary depending on what type of variable you are attempting to destroy. 
    41) How do I escape data before storing it into the database?
    addslashes function enables us to escape data before storage into the database.
    42) How is it possible to remove escape characters from a string?
    The stripslashes function enables us to remove the escape characters before apostrophes in a string.
    43) How can we automatically escape incoming data?
    We have to enable the Magic quotes entry in the configuration file of PHP.
    44) What does the function get_magic_quotes_gpc() means?
    The function get_magic_quotes_gpc() tells us whether the magic quotes is switched on or no.
    45) Is it possible to remove the HTML tags from data?
    The strip_tags() function enables us to clean a string from the HTML tags.
    46) what is the static variable in function useful for?
    A static variable is defined within a function only the first time and its value can be modified during function calls as follows:
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    function testFunction() { static $testVariable = 1;
    echo $testVariable;
    $testVariable++;
    }
    testFunction();        //1
    testFunction();        //2
    testFunction();        //3
    ?>
    47) How can we define a variable accessible in functions of a PHP script?
    This feature is possible using the global keyword.
    48) How is it possible to return a value from a function?
    A function returns a value using the instruction ‘return $value;’.
    49) What is the most convenient hashing method to be used to hash passwords?
    It is preferable to use crypt() which natively supports several hashing algorithms or the function hash() which supports more variants than crypt() rather than using the common hashing algorithms such as md5, sha1 or sha256 because they are conceived to be fast. hence, hashing passwords with these algorithms can vulnerability.
    50) Which cryptographic extension provide generation and verification of digital signatures?
    The PHP-openssl extension provides several cryptographic operations including generation and verification of digital signatures.
    51) How a constant is defined in a PHP script?
    The define() directive lets us defining a constant as follows:
    define (“ACONSTANT”, 123);
    52) How can you pass a variable by reference?
    To be able to pass a variable by reference, we use an ampersand in front of it, as follows $var1 = &$var2
    53) Will a comparison of an integer 12 and a string “13″ work in PHP?
    “13″ and 12 can be compared in PHP since it casts everything to the integer type.
    54) How is it possible to cast types in PHP?
    The name of the output type have to be specified in parentheses before the variable which is to be cast as follows:
    * (int), (integer) – cast to integer
    * (bool), (boolean) – cast to boolean
    * (float), (double), (real) – cast to float
    * (string) – cast to string
    * (array) – cast to array
    * (object) – cast to object
    55) When a conditional statement is ended with an endif?
    When the original if was followed by : and then the code block without braces.
    56) How is the ternary conditional operator used in PHP?
    It is composed of three expressions: a condition, and two operands describing what instruction should be performed when the specified condition is true or false as follows:
    Expression_1 ? Expression_2 : Expression_3;
    57) What is the function func_num_args() used for?
    The function func_num_args() is used to give the number of parameters passed into a function.
    58) If the variable $var1 is set to 10 and the $var2 is set to the character var1, what’s the value of $$var2?
    $$var2 contains the value 10.
    59) What does accessing a class via :: means?
    :: is used to access static methods that do not require object initialization.
    60) In PHP, objects are they passed by value or by reference?
    In PHP, objects passed by value.
    61) Are Parent constructors called implicitly inside a class constructor?
    No, a parent constructor have to be called explicitly as follows:
    parent::constructor($value)
    62) What’s the difference between __sleep and __wakeup?
    __sleep returns the array of all the variables that need to be saved, while __wakeup retrieves them.
    63) What is faster?
    1- Combining two variables as follows:
    $variable1 = ‘Hello ‘;
    $variable2 = ‘World’;
    $variable3 = $variable1.$variable2;
    Or
    2- $variable3 = “$variable1$variable2″;
    $variable3 will contain “Hello World”. The first code is faster than the second code especially for large large sets of data.
    64) what is the definition of a session?
    A session is a logical object enabling us to preserve temporary data across multiple PHP pages.
    65) How to initiate a session in PHP?
    The use of the function session_start() lets us activating a session.
    66) How is it possible to propagate a session id?
    It is possible to propagate a session id via cookies or URL parameters.
    67) What is the meaning of a Persistent Cookie?
    A persistent cookie is permanently stored in a cookie file on the browser’s computer. By default, cookies are temporary and are erased if we close the browser.
    68) When sessions ends?
    Sessions automatically ends when the PHP script finishs executing, but can be manually ended using the session_write_close().
    69) What is the difference between session_unregister() and session_unset()?
    The session_unregister() function unregister a global variable from the current session and the session_unset() function free all session variables.
    70) What does $GLOBALS means?
    $GLOBALS is associative array including references to all variables which are currently defined in the global scope of the script.
    71) What does $_SERVER means?
    $_SERVER is an array including information created by the web server such as paths, headers, and script locations.
    72) What does $_FILES means?
    $_FILES is an associative array composed of items sent to the current script via the HTTP POST method.
    73) What is the difference between $_FILES['userfile']['name'] and $_FILES['userfile']['tmp_name']?
    $_FILES['userfile']['name'] represents the original name of the file on the client machine,
    $_FILES['userfile']['tmp_name'] represents the temporary filename of the file stored on the server.
    74) How can we get the error when there is a problem to upload a file?
    $_FILES['userfile']['error'] contains the error code associated with the uploaded file.
    75) How can we change the maximum size of the files to be uploaded?
    We can change the maximum size of files to be uploaded by changing upload_max_filesize in php.ini.
    76) What does $_ENV means?
    $_ENV is an associative array of variables sent to the current PHP script via the environment method.
    77) What does $_COOKIE means?
    $_COOKIE is an associative array of variables sent to the current PHP script using the HTTP Cookies.
    78) What does the scope of variables means?
    The scope of a variable is the context within which it is defined. For the most part all PHP variables only have a single scope. This single scope spans included and required files as well.
    79) what the difference between the ‘BITWISE AND’ operator and the ‘LOGICAL AND’ operator?
    $a and $b:    TRUE if both $a and $b are TRUE.
    $a & $b:        Bits that are set in both $a and $b are set.
    80) What are the two main string operators?
    The first is the concatenation operator (‘.’), which returns the concatenation of its right and left arguments. The second is (‘.=’), which appends the argument on the right to the argument on the left.
    81) What does the array operator ‘===’ means?
    $a === $b TRUE if $a and $b have the same key/value pairs in the same order and of the same types.
    82) What is the differences between $a != $b and $a !== $b?
    != means inequality (TRUE if $a is not equal to $b) and !== means non-identity (TRUE if $a is not identical to $b).
    83) How can we determine whether a PHP variable is an instantiated object of a certain class?
    To be able to verify whether a PHP variable is an instantiated object of a certain class we use instanceof.
    84) What is the goto statement useful for?
    The goto statement can be placed to enable jumping inside the PHP program. The target is pointed by a label followed by a colon, and the instruction is specified as a goto statement followed by the desired target label.
    85) what is the difference between  Exception::getMessage and Exception::getLine ?
    Exception::getMessage lets us getting the Exception message and Exception::getLine lets us getting the line in which the exception occurred.
    86) What does the expression Exception::__toString means?
    Exception::__toString gives the String representation of the exception.
    87) How is it possible to parse a configuration file?
    The function parse_ini_file() enables us to load in the ini file specified in filename, and returns the settings in it in an associative array.
    88) How can we determine whether a variable is set?
    The boolean function isset determines if a variable is set and is not NULL.
    89) What is the difference between the functions strstr() and stristr()?
    The string function strstr(string allString, string occ) returns part of allString from the first occurrence of occ to the end of allString. This function is case-sensitive. stristr() is identical to strstr() except that it is case insensitive.
    90) what is the difference between for and foreach?
    for is expressed as follows:
    for (expr1; expr2; expr3)
    statement
    The first expression is executed once at the beginning. In each iteration, expr2 is evaluated. If it is TRUE, the loop continues and the statements inside for are executed. If it evaluates to FALSE, the execution of the loop ends. expr3 is tested at the end of each iteration.
    However, foreach provides an easy way to iterate over arrays and it is only used with arrays and objects.
    91) Is it possible to submit a form with a dedicated button?
    It is possible to use the document.form.submit() function to submit the form. For example: <input type=button value=”SUBMIT” onClick=”document.form.submit()”>
    92) What is the difference between ereg_replace() and eregi_replace()?
    The function eregi_replace() is identical to the function ereg_replace() except that it ignores case distinction when matching alphabetic characters.
    93) Is it possible to protect special characters in a query string?
    Yes, we use the urlencode() function to be able to protect special characters.
    94) What are the three classes of errors that can occur in PHP?
    The three basic classes of errors are notices (non-critical), warnings (serious errors) and fatal errors (critical errors).
    95) What is the difference between characters \034 and \x34?
    \034 is octal 34 and \x34 is hex 34.
    96) How can we pass the variable through the navigation between the pages?
    It is possible to pass the variables between the PHP pages using sessions, cookies or hidden form fields.
    97) Is it possible to extend the execution time of a php script?
    The use of the set_time_limit(int seconds) enables us to extend the execution time of a php script. The default limit is 30 seconds.
    98) Is it possible to destroy a cookie?
    Yes, it is possible by setting the cookie with a past expiration time.
    99) What is the default session time in php?
    It depends on the server configuration or the relevant directives (session.gc_maxlifetime) in php.ini. Typically the default is 24 minutes (1440 seconds).
    100) Is it possible to use COM component in PHP?
    Yes, it’s possible to integrate (Distributed) Component Object Model components ((D)COM) in PHP scripts which is provided as a framework.

    Mostly read two link (most of the interviewer asked those question and answer)